如何优先考虑laravel工作



我正在尝试使用laravel队列作业向我的用户发送每日新闻稿。一切都很好。现在的问题是,因为我有5万订户,所以处理时事通讯工作可能需要一个多小时。同时,一些用户注册了,但他们不会收到确认电子邮件。只有当时事通讯工作完成时,他们才会收到确认电子邮件。如何解决这个问题?我正试图按照以下方式使用onQueue("low"(。

$job = (new SnippetsnewsletterJob())
->onQueue("low");
dispatch($job);

但是问题没有解决!

您可以在不同的队列中拆分作业。这样你就可以对它们进行分类和排序。

指定作业属于的哪个队列

$this->dispatch((new JobOne())->onQueue('queue1');
$this->dispatch((new JobTwo())->onQueue('queue2');

现在,您将能够生成多个队列工作者来分别处理作业:

php artisan queue:work --queue=queue1
php artisan queue:work --queue=queue2

我找到了!如果您正在尝试运行长期任务,请使用kernel.php文件中的runInBackground((。

$schedule->command('snippets:newsletter')
->dailyAt('16:10')->runInBackground();

最新更新