Laravel 5 Laravel 5.5 redis队列太慢

Laravel 5 Laravel 5.5 redis队列太慢,laravel-5,redis,queue,Laravel 5,Redis,Queue,我已经发出了紧急呼叫: dispatch(new ProcessVideo($video)); logger('After dispatch at ' . Carbon::now()->format('H:i:s.u')); 和工作: public function handle() : void { logger('ProcessVideo@handle at ' . Carbon::now()->format('H:i:s.u')); } 在日志中,我们可以看到从队列

我已经发出了紧急呼叫:

dispatch(new ProcessVideo($video));
logger('After dispatch at ' . Carbon::now()->format('H:i:s.u'));
和工作:

public function handle() : void
{
    logger('ProcessVideo@handle at ' . Carbon::now()->format('H:i:s.u'));
}
在日志中,我们可以看到从队列调度和处理之间的间隔超过2.5秒

[2017-10-11 00:02:55] local.DEBUG: After dispatch at 00:02:55.423141  
[2017-10-11 00:02:58] local.DEBUG: ProcessVideo@handle at 00:02:58.071249

这里有什么问题?这是我的本地机器,它是唯一一个被派去测试功能的任务

我面临着与您类似的问题。处理第一个作业时大约有2-3秒的延迟

在四处搜索之后,我发现了拉威尔的队列工人

这意味着在最坏的情况下,第一个作业将延迟3秒

要解决这个问题,只需在运行worker时指定--sleep=0。希望能有帮助

php artisan queue:worker --sleep=0

你的工作如何处理?您使用的是数据库队列还是类似的东西?也许可以添加您的.env文件,以便我们更好地了解您的情况。@HansVn我使用Redis queue我还注意到队列有相当大的延迟,绝对不适合与WebSocket一起使用。您确定在.env文件中将Redis设置为队列驱动程序吗?我在代码中调用了Redis,但是.env中的队列驱动程序被设置为“sync”,并经历了相同的速度。切换到Redis使它瞬间生效。@stef是的,我确定。您没有任何延迟吗?看起来工作人员不会低于1秒,尽管使用
--sleep=0
有点欺骗性。我建议来这里找东西的人看看这个: