php – laravel队列 – 同步驱动程序如何工作?它是在单独的进程还是主执行线程中执行?

我从我的服务器发送推送通知,并希望它只是在后台进程中执行.我已经阅读了Laravel文档,我也了解了数据库驱动程序和其他一些选项.我已经在我的本地机器上使用数据库驱动程序,但有一件事让我烦恼,我要开始一个后台线程来监听使用php artisan queue添加到队列中的作业:listen –deamon.

关键是,它总是通过像’crone’任务一样运行来消耗我的一些资源和内存.我只想在触发推送通知时创建一个新进程,它应该在添加后立即开始执行,之后应该关闭该进程.另一方面,在laravel作业中,我总是需要运行一个我想避免的后台进程,而且我正在使用共享主机,它不允许我在我的服务器上安装“supervisor”来监视我的作业执行.

任何人都可以清除这种含糊之处吗?处理这种情况的更好方法是什么?

解决方法:

经过一番研究,我决定使用数据库驱动程序.还有一些其他很好的选择,但选择取决于您的系统工作负载.

关键是,同步驱动程序使用主线程来执行任务,这仅在您进行开发时才有用.如果您有生产系统,那么您可能需要考虑运行队列的其他选项.排队长时间运行任务的主要思想是能够在某些后台进程中执行它们,这样您的主应用程序线程就不会阻塞,您可以更快地为客户端请求提供服务.

有关不同驱动程序和帮助的更多信息,请访问Laravel docs

上一篇:Azkaban实战


下一篇:SaltSack 中Job管理