gpt4 book ai didi

windows - Azure 服务器中的 Laravel 队列

转载 作者:行者123 更新时间:2023-12-03 03:04:34 25 4
gpt4 key购买 nike

我真的很苦恼这个问题,这让我有点沮丧,因为它在 Linux 服务器中似乎很简单。我有一个 Windows Azure Web 应用程序,我想在服务器上连续运行“php artisanqueue:listen”来处理分派(dispatch)的作业。根据我从文档中读到的内容,在 Linux 中,您只需使用 Supervisor 不断运行命令并恢复它,以防它死掉。根据我在网上找到的信息,Azure 有一个类似的功能,称为 WebJobs,您可以在其中为它们提供要运行的脚本,然后决定它是应该按计划运行还是连续运行(有点像 Laravel 中的调度程序)。我有两个问题。

  • 1 - 这是正确的解决方案吗?放置一个脚本来在 WebJob 上运行命令并让 WebJob 持续运行?
  • 2 - 我没有编写运行命令行的 php 脚本的经验,所以我能做的就是这样:

echo shell_exec('php artisan queue:work');

问题是这并没有给我命令的输出(当我在命令控制台上手动运行命令并处理作业时,我没有看到类似“已处理”结果的任何内容)。对我来说,能够读取命令的输出非常重要,因为我希望能够检查日志中的错误,以防在无法处理作业时发生问题。从文档中 shell_exec 返回 null 万一抛出错误,所以我完全不知道如何处理这个问题。

提前非常感谢您!

最佳答案

您可以直接上传包含命令php artisanqueue:work的.cmd文件,而不是使用shell_exec(),然后您可以在<中找到输出日志strong>WebJob 详细信息页面。

具体操作方法请查看Ernesto's answer出去。

For Azure you can make a new webjob to your web app, and upload a .cmd file including a command like this.

php %HOME%\site\wwwroot\artisan queue:work --daemon

and defining that as a triguered and 0 * * * * * frecuency cron.

that way work for me.

更多信息请引用Run Background tasks with WebJobs .

关于windows - Azure 服务器中的 Laravel 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45747528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com