【问题标题】:Lucid Laravel Queue Data from one Job to another in chainLucid Laravel 队列数据从一个作业到另一个作业链
【发布时间】:2017-10-04 12:05:33
【问题描述】:

我有一个包含 2 个作业的队列:

   $this->dispatch(new Test1Job())->chain(new Test2Job($here I want to have a paramter, which is returned from Test1Job));

如何从队列中的一个作业获取数据到另一个作业?

【问题讨论】:

    标签: php laravel jobs chain


    【解决方案1】:

    我只是通过查看代码库来链接作业。关于它的文档为零。通过做一些研究,我看到贡献者拥有committed 工作链代码。 显然,如果需要链接作业,但不能链接,这是一个真正的问题。

    我会使用另一个库来做到这一点。我找到了一个叫guzzle/promises。

    use Carbon\Carbon;
    use GuzzleHttp\Promise\Promise;
    use GuzzleHttp\Promise\EachPromise;
    
    $job1 = (new JobClass1())->delay(Carbon::now()->addSeconds(5));
    $job2 = (new JobClass2());
    $job3 = (new JobClass3());
    $job4 = (new JobClass4());
    
    $promises = [dispatch($job1),dispatch($job2),dispatch($job3),dispatch($job4)];
    
    $each = new EachPromise($promises, [
        'fulfilled' => function ($value, $id, Promise $aggregate) use (&$called) {
            $aggregate->resolve(null);
        },
        'rejected' => function (\Exception $reason) {
            echo $reason->getMessage();
        }
    ]);
    
    $p = $each->promise();
    
    foreach($p as $i => $prom){
        $prom->resolve();
        $prom->wait();
    }
    

    【讨论】:

      猜你喜欢
      • 2019-01-02
      • 1970-01-01
      • 2021-09-16
      • 2018-06-27
      • 1970-01-01
      • 2020-08-03
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多