Laravel队列随机不调度

我试图从控制器分派作业,但有时队列有效,有时它会立即执行代码。另一方面,从命令调度工作正常,所以我想知道有什么区别。

我尝试过的事情:

  • 我尝试了数据库和 Redis 连接,但两个连接都出现了问题
  • 不运行队列监听/工作,作业会随机执行,所以监听/工作不会是问题
  • 检查网络服务器/PHP 日志是否有错误,没有结果
  • 在静态调度函数之前出现问题。当我在静态调度函数中放入一个die时,它有时会杀死应用程序,有时它仍然会立即在句柄中运行解码....

供应商/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php

public static function dispatch()
{
    die('xxx');
    
    return new PendingDispatch(new static(...func_get_args()));
}

我试图找到在调度函数之前发生的事情,但是我找不到在静态句柄函数之前执行的任何函数。我感觉有些东西在 PHP 中崩溃了,或者立即执行作业,但我找不到核心中发生这种情况的地方。

控制器

class CreateTestJob
{
    public function __invoke(Request $request)
    {
        TestJob::dispatch(rand(0, 999999));
    }
}

工作

class TestJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public function __construct($test)
    {
        $this->test = $test;
    }

    public function handle()
    {
        sleep(30);

        echo 'done';
    }
}

我还尝试在 TestJob 的 de handle 函数中创建语法错误,以便我可以看到堆栈跟踪,但它显示“1 个未知帧”。我想知道那是什么

以上是Laravel队列随机不调度的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>