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