【发布时间】:2020-01-11 20:04:48
【问题描述】:
处理Laravel队列,我的理解是作业是保留在队列中要一个接一个执行的任务。
Laravel 文档说:
换句话说,如果您在没有明确定义的情况下分派工作 它应该被分派到哪个队列,作业将被放置在 在连接的队列属性中定义的队列 配置:
// 这个作业被发送到默认队列...
Job::dispatch();// 这个作业被发送到“电子邮件”队列...
Job::dispatch()->onQueue('emails');
在同一个文档页面的另一个地方,我发现:
ProcessPodcast::dispatch($podcast);
ProcessPodcast 是这里的一个工作,它带有一个参数,即$podcast。但在文档中我没有找到语法 Job:: 除了提到的 2 行。
Q1) 那么Job::语法在哪里以及如何使用呢?
config/queue.php 内的connections 数组中的每个元素都有'queue' => 'default',。
Q2)emails 队列来自Job::dispatch()->onQueue('emails'); 中的哪里?
【问题讨论】:
-
您实际上是在展示一个使用该语法的示例...
ProcessPodcast::....这是一个工作。在示例中,Job是您创建的工作类别的占位符 -
行中的
Job::似乎是一个特殊的门面。文档应该更明确吗? -
它不是门面......没有名为
Job的门面......这是一个通用词,就像说Class,你命名你的工作而不是 laravel,他们不知道什么你的工作被调用,你必须推断你自己的类 -
我的意思是它似乎是一个门面,而实际上不是。
-
它称为静态方法调用,它只是 PHP ......就像你对模型使用静态方法调用一样,它们不是外观
标签: laravel queue jobs laravel-queue laravel-jobs