【问题标题】:Job chaining in Lumen 5.5: withChain() not working how can I make it work?Lumen 5.5 中的作业链接:withChain() 不工作我怎样才能让它工作?
【发布时间】:2018-04-28 17:39:11
【问题描述】:

为了分派一项工作,我通常会执行以下操作之一:

Queue::push(new ExampleJob);

dispatch(new ExampleJob);

https://lumen.laravel.com/docs/5.5/queues

根据 Laravel Docs 的某个 Job 链,其中一个 Job 依赖于前一个 Job 是这样完成的:

ExampleJob::withChain([
    new OptimizePodcast,
    new ReleasePodcast
])->dispatch();

https://laravel.com/docs/5.5/queues#job-chaining

但是这在 Lumen 中不起作用(类似问题:How to dispatch a Job to a specific queue in Lumen 5.5)。

如何在 Lumen 5.5 中链接作业?

【问题讨论】:

标签: php jobs lumen chaining laravel-5.5


【解决方案1】:

我认为这不会起作用,因为在 Laravel 5.5 文档中,在队列文档页面下creating jobs 下的示例中,它表明它需要几个特征才能使用所有功能:

<?php

namespace App\Jobs;

use App\Podcast;
use App\AudioProcessor;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

class ProcessPodcast implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $podcast;

最值得注意的是这个:

use Illuminate\Foundation\Bus\Dispatchable; 这似乎是 Lumen 5.5 框架完全缺失的特征。

Illuminate\... 的其余特征似乎已包含在内。

【讨论】:

  • 就我而言,我需要快速行动,所以我决定改用 Laravel 5.5,尽管它增加了开销。但我可以确认链接作业恰好如 Laravel 5.5 上所宣传的那样工作
  • 根据Lumen Queue doc's,您可以通过简单地调用dispatch(new ExampleJob);来调度作业(不需要Dispatchable trait)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-25
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 2011-04-26
相关资源
最近更新 更多