laravel—将批处理redis排队,并在其他微服务上运行它

kr98yfug  于 2021-06-07  发布在  Redis
关注(0)|答案(0)|浏览(314)

有了两个使用laravel的微服务,我们可以使用redis将一个作业从一个微服务分派到另一个微服务。

Bus::chain([
    new SomeJob(),
    new SomeJob(),
    new SomeJob(),
])->dispatch()

但当我们对批次进行同样的处理时:

$batch = Bus::batch([
    [
        new SomeJob(),
        new SomeJob(),
        new SomeJob(),
    ]
])->then(function (Batch $batch) {
    // All jobs completed successfully...
})->catch(function (Batch $batch, Throwable $e) {
    // First batch job failure detected...
})->finally(function (Batch $batch) {
    // The batch has finished executing...
})->onConnection('redis')
->dispatch();

作业仍在另一个微服务上执行,但它不会更新 job_batches table。
例如 Microservice 1 接收请求,在上创建jobbatch
job_batches Microservice 1 调度redis队列上的作业 Microservice 2 处理作业并执行一些代码 Microservice 1 不更新 job_batches 无论成功或失败
有什么建议吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题