带有Redis pub sub和socket io的Laravel广播需要2秒以上的时间才能完成
我正在使用Redis pub sub和socket io在Laravel中构建一个实时通知应用程序。我正在通过beanstalkd处理队列,并运行Laravel队列:与supervisord一起工作。在所有成功设置之后,客户端接收通知所需的时间超过或等于3秒 这是正常的还是可以进一步减少 我的操作系统是centos 6.9,带有8GB Ram和四核Xeon E3-1220处理器。带有Redis pub sub和socket io的Laravel广播需要2秒以上的时间才能完成,laravel,redis,socket.io,Laravel,Redis,Socket.io,我正在使用Redis pub sub和socket io在Laravel中构建一个实时通知应用程序。我正在通过beanstalkd处理队列,并运行Laravel队列:与supervisord一起工作。在所有成功设置之后,客户端接收通知所需的时间超过或等于3秒 这是正常的还是可以进一步减少 我的操作系统是centos 6.9,带有8GB Ram和四核Xeon E3-1220处理器。 PHP7.0,Laravel版本5.2,Redis 3.9.103,带有phpredis扩展。artisan que
PHP7.0,Laravel版本5.2,Redis 3.9.103,带有phpredis扩展。artisan queue:work命令使用默认的轮询间隔三秒:
$ artisan queue:work --help
Options:
...
--sleep[=SLEEP] Number of seconds to sleep when no job is available [default: "3"]
所以,你可以减少这个值来减少你看到的延迟。这只适用于空队列(就像它可能正在开发中一样)。如果队列正忙,工作进程将毫不延迟地继续弹出作业,直到它用完为止
Laravel在5.3版中添加,它比队列更适合通知等实时事件