Laravel 队列与 beanstalkd 和 redis 重复

Posted

技术标签:

【中文标题】Laravel 队列与 beanstalkd 和 redis 重复【英文标题】:Laravel Queue is repeating with beanstalkd and redis 【发布时间】:2015-03-08 15:23:49 【问题描述】:

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

我所做的只是:

    安装 beanstalkd ,运行 beanstalkd 运行php artisan queue:listen 在队列监听的终端窗口中,每隔几秒就会重复:Processed: SendEmail

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

第二次测试,停止 beanstlkd 和队列监听,我有一个控制器,它简单地说:

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Laravel 队列与 beanstalkd 和 redis 重复的主要内容,如果未能解决你的问题,请参考以下文章

在同一台服务器上分离beanstalkd队列

Beanstalkd 消息队列

Beanstalkd工作队列

Laravel 队列应用

Laravel 邮件队列无限循环异常

一种消息和任务队列——beanstalkd