【问题标题】:Laravel implements Shouldqueue different queueLaravel 实现 Shouldqueue 不同的队列
【发布时间】:2015-12-08 10:42:45
【问题描述】:

在 laravel 中你可以像这样调用 ShouldQueue 接口

class ProfileWasCreated extends Event implements ShouldQueue

默认情况下,这会将事件排入默认队列,但我似乎无法弄清楚如何将此事件排入名为 email 的不同队列中。

【问题讨论】:

  • 我改进了语法。如果您可以添加代码,其他用户会更容易看到问题。

标签: php laravel laravel-5 queue


【解决方案1】:
$this->onQueue('emails');

在电子邮件类的构造函数中添加上面的行。它将设置队列名称。然后你可以使用 Mail::send() 函数,它会在“电子邮件”队列中排队。

【讨论】:

  • 只是出于好奇,我在文档中哪里可以找到它?
【解决方案2】:

您可以通过在作业对象上调用 onQueue() 来指定应将作业发送到的队列,例如:

$job = new MyJob();
$job->onQueue('queue_name');
$this->dispatch($job);

onQueue 方法由 Queueable 特征提供 - 默认情况下,它应该已经包含在您的基础 App\Jobs\Job 类中。

dispatch() 方法由 ** DispatchesJobs** 特征提供,您应该将其包含在要分派作业的类中。

在此处查看有关如何使用作业和队列的更多详细信息:http://laravel.com/docs/5.1/queues#dispatching-jobs-from-requests

【讨论】:

  • 问题是,一旦你实施了 ShouldQueue 就没有调度,这一切都会发生在其他地方。
  • 我在答案中添加了更多信息 - 包括如何获取 dispatch() 方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多