【问题标题】:Laravel 5.5 withChain shared storageLaravel 5.5 withChain 共享存储
【发布时间】:2018-01-26 15:37:49
【问题描述】:

我需要做类似下一个例子的事情

    App\Jobs\Test::withChain([
       new \App\Jobs\Test1($user),
       new \App\Jobs\Test2($user),
    ])->dispatch($user);

但是 Laravel 没有任何解决方案来保存队列链中作业之间的对象状态。 有没有人和我一样的问题? 我需要将一些变量传递给父作业,保存一些状态并在子作业中使用它们

【问题讨论】:

    标签: php laravel queue chain


    【解决方案1】:

    您可以将数据保存在数据库表或缓存中。你的用例是什么?

    定义一个通用键来序列化和缓存作业之间的数据将是我的第一种方法。

    【讨论】:

    • 嗨!是的,我想过(存储在文件缓存/redis/etc 中)。但也许有更优雅的解决方案
    • 我的案例是数据分析,我需要从之前的步骤(瀑布)中获取任何数据,以了解我接下来应该做什么并通知用户分析结果
    • 您是否考虑过使用事件来触发后续作业?假设 Job 1 完成,根据结果,您可以发送一个事件来启动 Job 2 或发送不同的事件来触发 Job 3。通过事件,您可以使用有效负载进行调度,从而为您提供一种在作业之间传递数据的传递机制。
    • 它按照您的建议工作:) 但它仍然不够灵活。我在 laravel git repo 中询问了这个改进。我认为实施它会很棒。我喜欢相同情况下的 JS 行为(回调瀑布/承诺)
    猜你喜欢
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2018-05-26
    • 2019-11-01
    • 2018-11-06
    • 1970-01-01
    • 2015-08-13
    相关资源
    最近更新 更多