【发布时间】:2017-09-14 00:39:36
【问题描述】:
我正在从我的服务器发送推送通知,并希望它在后台进程中简单地执行。我已经阅读了 Laravel 文档,并且还了解数据库驱动程序和其他一些选项。我已经让它在我的本地机器上与数据库驱动程序一起工作,但有一件事困扰着我,我必须启动一个后台线程来监听使用php artisan queue:listen --deamon 添加到队列中的作业。
关键是,它总是通过像“crone”任务一样运行来消耗我的一些资源和内存。我只想在触发推送通知时创建一个新进程,它应该在添加后立即开始执行,之后应该关闭该进程。另一方面,对于 laravel 作业,我总是必须运行一个我想避免的后台进程,而且我使用的是共享主机,它不允许我在我的服务器上安装“主管”来监控我的作业执行。
任何人都可以消除这种歧义吗?处理这种情况的更好方法是什么?
【问题讨论】:
-
同步驱动程序在主执行线程而不是后台工作线程上执行进程。这对调试很有用
-
@SanderVisser 那么更好的方法是什么?
-
可以使用数据库驱动,但是需要后台进程运行。或者您可以使用同步驱动程序,但该驱动程序在主线程上执行。在 PHP 世界中,很难从主线程生成一个后台进程,并且会带来很多问题。但是,如果您真的愿意,您可以创建自己的驱动程序来生成后台任务。
标签: php multithreading laravel queue jobs