Laravel工作链

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

今天下午,我一直在试着把头发弄脏,试图找工作。无论发生什么事,我都无法获得链式工作。第一个总是运行并成功但链接将永远不会运行。

例如,我有一个事件监听器

  class PersistPreviousStatement implements ShouldQueue
    {
        /**
         * @param StatementCreated $event
         */
        public function handle(StatementCreated $event): void
        {
            DoOneThing::withChain([
                new DoSomething()
            ])->dispatch();
        }
}

我的两个工作类如下:

class DoOneThing
{
    use Dispatchable, Queueable;

    public function handle(): void
    {
        $statement = Statement::find(20);
        $statement->file = 'yyy';
        $statement->save();
    }
}


class DoSomething
{
    use Dispatchable, Queueable;

    public function handle(): void
    {
        $statement = Statement::find(10);
        $statement->file = 'xxxx';
        $statement->save();
    }
}

在上面的情况。我的DoOneThing类使用'yyy'正确设置记录,但DoSomething类不运行。如果我改变顺序就好

DoSomething::withChain([
            new DoOneThing()
        ])->dispatch();

DoSomething不是DoOnething。我将两个作业设置为可排队/ Dispatchable,我的驱动程序设置为同步。我也可以独立地派遣工作,如:

DoSomething :: dispatch()DoOneThing :: dispatch()

两者都会运行。

有任何想法吗?

php laravel jobs laravel-5.7
1个回答
0
投票

我在工作中缺少InteractsWithQueue特质。

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