Laravel 队列链

问题描述 投票:0回答:2

如何将数据从链中的一个作业传递到另一个作业?

XJob::withchain([
            new YJob()
            new ZJob(),
            new AJon(),
        ])->dispatch();

我想将 $x 从 XJob 传递到 YJob,并将 $y 传递到 ZJob,将 $x、$z 传递到 AJob()。

laravel queue jobs chaining
2个回答
0
投票

您可以通过调度方法将参数传递给第一个作业。所以你的代码应该是这样的:

XJob::withchain([
    new YJob($y)
    new ZJob($z),
    new AJon($a),
])->dispatch($x);

0
投票

您可以创建一个单独的作业类并将其排入队列,并在其中同步调用其他作业。例如这样:

$respX = XJob::dispatchSync();
$respY = YJob::dispatchSync($respX);
$respZ = ZJob::dispatchSync($respY);

这样,您仍然可以将逻辑分离到多个类中,并异步执行。 但如果它需要成为一份工作,我不知道...... 但它会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.