Laravel的数据库作业链扩展包:laravelhaystack
Laravel Haystack 是一个允许你在数据库中存储作业链的包。
由于链中的所有作业都在数据库中,内存使用率很低,您可以长时间延迟作业或长时间运行作业,而不会冒险使用所有内存。
Laravel Haystack 开箱即用地支持每个队列连接/工作者。(数据库、Redis/Horizon、SQS)。
$haystack = Haystack::build() ->withName('Podcast Chain') ->addJob(new RecordPodcast) ->addJob(new ProcessPodcast) ->addJob(new PublishPodcast) ->then(function () { // Haystack完成 }) ->catch(function () { // Haystack失败 }) ->finally(function () { // 总是在成功或失败时运行. }) ->paused(function () { // 如果 haystack 暂停则运行 }) ->withMiddleware([ // 适用于每项工作的中间件 ]) ->withDelay(60) // 为每个作业添加延迟 ->dispatch();