【问题标题】:Laravel queue And Azure WebJobLaravel 队列和 Azure WebJob
【发布时间】:2021-10-19 10:44:53
【问题描述】:
我在 Azure 应用服务中有一个 Laravel 项目..
我正在使用 Laravel 队列在后台运行长作业,所以我添加了一个 WebJob 来运行队列..问题是作业顺序执行而不是并行执行。
经过搜索,我发现我需要一个主管来运行多个工人。
我的问题是如何让多个工作人员在 Azure 中运行同一个队列??
我的连续 WebJob:
php %HOME%\site\wwwroot\artisan queue:listen --timeout=0
【问题讨论】:
标签:
laravel
azure
azure-webjobs
laravel-queue
azure-appservice
【解决方案1】:
根据我对问题的理解。连续作业在运行 Web 应用程序的所有实例上运行。实际上,您可以选择将 WebJob 限制为单个实例(在您的情况下有所不同)。
请注意,应用服务只会在该作业的根目录下查找脚本(而不是在其子目录下)。仅列出了这些受支持的脚本或程序文件类型here:
Laravel,使用 public/ 子目录作为站点根目录。
通过将它们复制到 d:\home\site\wwwroot 来部署作业,如下所示。这些作业将在 SCM\Kudu 网站的工作进程下运行,而不是主站点。
路径:wwwroot\app_data\jobs\continuous{job name})。
要在部署期间将连续作业设置为单例,您可以简单地创建一个名为 settings.job 的文件,其内容为:{ "is_singleton": true } 并将其放在(特定)WebJob 目录的根目录中。但是,在您的情况下 { "is_singleton": false }
如果您的要求符合您的要求,您可以使用WebJobs API 或Azure Functions