Laravel:运行队列:在Windows Azure Web App上持续监听

Tia*_*ães 7 php queue azure laravel artisan

我对这个问题感到有点傻,但我似乎无法在互联网上找到这个问题的答案.搜索了几个小时后,我发现在linux服务器上你使用Supervisor在你的网站上连续运行"php artisan queue:listen"(有或没有守护进程)来处理推送到队列的作业.这一切都很好,但如果我想在Windows Azure Web应用程序上执行此操作,该怎么办?在搜索解决方案后,我发现:

  • 做一个chron工作,每分钟(或每X分钟)运行"php artisan队列:听",我真的不喜欢这个解决方案,并希望特别避免它,如果网站获得更多的流量;
  • 添加一个连续运行"php artisan queue:listen"的WebJob(这里的问题是我不知道如何编写WebJob的脚本......);

我想请大家帮忙知道哪些是正确的解决方案,如果有更好的解决方案,如果WebJob是最好的,我该如何为此编写脚本?提前致谢.

Jus*_*and 7

简而言之,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
Run Code Online (Sandbox Code Playgroud)

如何?

node为 Windows安装,然后npm安装Forever

C:\myprojectroot > npm install -g forever
Run Code Online (Sandbox Code Playgroud)

如果你坚持让 Node 在 Windows 上运行,我推荐 Windows 包管理器, Chocolatey

https://chocolatey.org/packages?q=node

一定要检查Forever创建的任何日志文件,因为我留下的日志文件已经足够消耗 30Gb 的磁盘空间了!

  • 我已经使用了这个命令“forever -c php artisan queue:listen redis”,现在cmd弹出并连续消失。这怎么能阻止?操作系统:windows laravel 5.2 (2认同)