【发布时间】:2018-01-26 14:26:41
【问题描述】:
我真的在为这个问题苦苦挣扎,这让我有点沮丧,因为它在 Linux 服务器中似乎很简单。我有一个 Windows Azure Web 应用程序,我想在服务器上连续运行“php artisan queue:listen”来处理分派的作业。根据我从文档中读到的内容,在 Linux 中,您只需使用 Supervisor 不断运行命令并恢复它,以防它死亡。从我在网上找到的内容来看,Azure 有一个类似的功能,称为 WebJobs,您可以在其中为他们提供要运行的脚本,然后决定它是按计划运行还是连续运行(有点像 Laravel 中的调度程序)。对此,我有 2 个问题。
- 1 - 这是正确的解决方案吗?放置脚本以在 WebJob 上运行命令并让 WebJob 连续运行?
- 2 - 我没有编写 php 脚本来运行命令行的经验,所以我能做的就是这样:
echo shell_exec('php artisan queue:work');
问题是这不会给我命令的输出(当我在命令控制台上手动运行命令并处理作业时,我看不到任何类似于“已处理”的结果)。能够读取命令的输出对我来说很重要,因为我希望能够检查日志中的错误,以防在无法处理作业时发生某些事情。从文档中 shell_exec 返回 null 以防引发错误,所以我完全不知道如何处理这个问题。
非常感谢您!
【问题讨论】:
标签: windows laravel azure queue azure-webjobs