laravel 为什么handle方法在作业执行期间不激发?

3mpgtkmj  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(270)

我一直使用事件和侦听器来向队列添加任务。现在我尝试使用作业。我这样做:我的工作

class eventJob implements ShouldQueue
{
     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
     public $message;
     /**
      * Create a new job instance.
      *
      * @return void
      */
     public function __construct($message)
     {
         $this->message = $message;
     }

     /**
      * Execute the job.
      *
      * @return void
      */
     public function handle()
     {
         Log::alert($this->message);
     }
}

我的.env文件:QUEUE_CONNECTION=database在我的控制器中,我这样分派事件:eventJob::dispatch('my message'); jobs表中出现一条新记录,为了执行它,我运行php artisan queue:work。该记录将从jobs表中删除,但文件日志中不显示任何内容
我尝试在handle方法和构造函数中执行throw new \Exception("Error Processing the job", 1);,但是filed_jobs表中没有写入任何内容,我从该表中假设handle方法和构造函数不执行。我还尝试如下运行我的作业:$job = new eventJob('my test message'); dispatch($job);
但这并不能改变什么

z0qdvdin

z0qdvdin1#

我不知道为什么,但当我改变config/queue.php文件从'default' => env('QUEUE_CONNECTION', 'sync')'default' => env('QUEUE_CONNECTION', 'database')一切都开始工作,因为它应该

相关问题