我对这个问题感到有点傻,但我似乎无法在互联网上找到这个问题的答案。搜索了几个小时后,我发现在linux服务器上你使用Supervisor在你的网站上连续运行“php artisan queue:listen”(有或没有守护进程)来处理推送到队列的作业。这一切都很好,但如果我想在Windows Azure Web应用程序上执行此操作,该怎么办?在搜索解决方案后,我发现:
我想请大家帮忙,知道哪些是正确的解决方案,如果有更好的解决方案,如果WebJob是最好的,我该如何为此编写脚本?提前致谢。
简而言之,Supervisor是nohup的一种现代替代方案(没有挂断),其他一些零碎的东西也随之而来。简而言之,还有其他资源可以让任务在后台运行(守护进程),而我用于基于Windows的项目(很少tbh)的解决方案是Forever,我通过以下方式发现:https://stackoverflow.com/a/18226392/5912664
C:\myprojectroot > forever -c php artisan queue:listen --queue=some_nice_queue --tries=3
怎么样?
安装node
for Windows,然后使用npm
安装Forever
C:\myprojectroot > npm install -g forever
如果你因为在Windows上运行Node而遇到困难,我建议使用Windows Package Manager,Chocolatey
https://chocolatey.org/packages?q=node
一定要检查Forever
创建的任何日志文件,因为我留下了足够长的时间来消耗30Gb的磁盘空间!
对于Azure,您可以为您的Web应用程序创建一个新的webjob,并上传包含这样命令的.cmd文件。
php %HOME%\site\wwwroot\artisan queue:work --daemon
并将其定义为triguered和0 * * * * *频率cron。
那种方式对我有用。
最好。