Laravel作业在不启动队列的情况下实时执行
在Laravel 5.8上运行 我正在创建大量的作业,我认为这些作业应该在队列启动后执行。 我的问题是,当我甚至还没有启动队列时,作业就会被执行 它们甚至没有被插入到迁移创建的Laravel作业在不启动队列的情况下实时执行,laravel,laravel-5,queue,laravel-5.8,Laravel,Laravel 5,Queue,Laravel 5.8,在Laravel 5.8上运行 我正在创建大量的作业,我认为这些作业应该在队列启动后执行。 我的问题是,当我甚至还没有启动队列时,作业就会被执行 它们甚至没有被插入到迁移创建的作业表中 下面是我认为相关的设置和代码。如果需要更多信息,请告诉我 在新安装上: php artisan queue:table php artisan migrate .env文件 QUEUE_CONNECTION=database 创建了queuedtask class FulfillmentTask implem
作业
表中
下面是我认为相关的设置和代码。如果需要更多信息,请告诉我
在新安装上:
php artisan queue:table
php artisan migrate
.env文件
QUEUE_CONNECTION=database
创建了queuedtask
class FulfillmentTask implements ShouldQueue{
//code here
}
控制器
use App\Jobs\FulfillmentTask;
//rest of the class here
public function somefunction(Request $request){
//some code here
//read csv file
foreach ($fileContents as $row){
FulfillmentTask::dispatch($orderId, $client, $request->sendEmail)->onQueue('database');
}
}
问题是在终端中未给出队列:工作
命令的情况下执行FulfillmentTask
知道为什么会发生这种情况吗?“数据库”是一个队列连接。请将您的工作发送到该连接
FulfillmentTask::dispatch($orderId, $client, $request->sendEmail)->onConnection('database');
这似乎是默认连接,所以您只需分派作业
FulfillmentTask::dispatch($orderId, $client, $request->sendEmail);
您想尝试:onConnection('database')而不是onQueue('database')?按预期工作。想把它作为一个答案@KevinBui?