控制器 public function queuelater($orderid) { echo date("Y-m-d H:i:s"); $queue=Queue::later(60, 'app\common\job\TimeoutOrder', ['orderid' => $orderid],$queue = 'OrderSure'); if($queue){ echo '异步执行成功'; }else{ echo '异步执行失败'; } } 任务方法 ``` class TimeoutOrder { // 任务执行的逻辑 public function fire(Job $job, $data) { $orderid = $data['orderid']; $order = Db::table('re_reserve_order')->where('id', $orderid)->find(); if ($order) { Db::table('re_reserve_order') ->where('id',$orderid) ->update(['is_status' => 5,'agree'=>0]); // 更改订单状态为已确认 } // 删除任务标记,表示任务已完成 $job->delete(); } } ``` 配置文件 return [ 'default' => 'redis', 'connections' => [ 'sync' => [ 'driver' => 'sync', ], 'database' => [ 'driver' => 'database', 'queue' => 'default', 'table' => 'jobs', ], 'redis' => [ 'driver' => 'redis', 'queue' => 'default', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '', 'select' => 1, 'timeout' => 0, 'persistent' => false, 'type'=>'redis', ], ], 'failed' => [ 'type' => 'none', 'table' => 'failed_jobs', ], ]; 每次执行 都是立即执行了,没有异步等待60秒执行 这是什么原因
Activity
zhaoxin987 commentedon Feb 24, 2025
任务方法
public function fire(Job $job, $data)
// public function push(Job $job, $data)
{
zhaoxin987 commentedon Feb 24, 2025
配置文件
return [ 'default' => 'redis', 'connections' => [ 'sync' => [ 'driver' => 'sync', ], 'database' => [ 'driver' => 'database', 'queue' => 'default', 'table' => 'jobs', ], 'redis' => [ 'driver' => 'redis', 'queue' => 'default', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '', 'select' => 1, 'timeout' => 0, 'persistent' => false, 'type'=>'redis', ], ], 'failed' => [ 'type' => 'none', 'table' => 'failed_jobs', ], ];