按照官方邮件发送配置完后,将任务添加到队列中,
$job = (new SendReminder($withdrawal))->onQueue('emails')->delay(10);
$this->dispatch($job);
然后服务端启动队列监听,
php artisan queue:listen --queue=emails
却发现任务一直执行,也就是一直会收到邮件。
按理说,生产者将任务加入队列,消费者从队列中取任务消费,应该是先进先出,只执行一次才对呀,可是为什么会一直执行?
安装上redisadmin后查看,发现添加的任务一直保留在队列中,没有被取走(删除)。并且这条任务的状态变为了reserved(保留的)。
然后在网上发现了这篇文章(http://yansu.org/2014/04/11/redis-queue-in-lara