Laravel 队列正在与 beanstalkd 和 redis 重复

Laravel Queue is repeating with beanstalkd and redis

我正在使用 laravel 带有 beanstalkd 驱动程序的队列(同样的事情发生在 redis 上),当我推送一个队列时它只是不断重复

我所做的只是:

  1. 安装 beanstalkd ,运行 beanstalkd
  2. 运行 php artisan queue:listen
  3. 在 queue listen 的终端 window 中,每隔几秒就一直重复:Processed: SendEmail

我认为队列不为空,所以尝试将其清除(它是空的),失败的作业 table 是空的。

第二次测试,停止了 beantlkd 和队列监听,我有一个控制器,上面写着:

..
Queue::push('SendEmail@fire', array('message' => $msg->id));

控制器中完全没有循环,发送电子邮件功能中也没有循环

您需要在 SendEmail@fire 结束时删除作业

Class SendMail {
    public function fire($job, $data){
        ///...
        $job->delete();
    }
}