Laravel 在 Azure WebApp 上安排

Laravel schedule on Azure WebApp

我正在寻找一种方法来 link Azure 调度程序或 Web 作业到 Laravel 计划。

我的理解是,要设置 Azure 计划,我需要 link 到 Laravel 的终点,我不确定如何实现。

TL;DR

您可以使用 WebApps 下的 WebJobs 和命令行脚本来触发 Laravel 调度程序。

完整参考

Azure 提供程序 WebJobs,可以触发各种触发器,包括类似 Cron 的调度程序。为了 运行 Laravel 调度程序,您需要每分钟触发 schedule:run 命令。现在我假设 artisan 住在 D:\home\site\wwwroot\artisan,这是基于 PHP 的部署的默认位置。

  1. 创建一个名为 runsched.cmd 的新文件或任何其他文件,只要它具有 .cmd 扩展名即可。用记事本编辑文件并添加:

    php %HOME%\site\wwwroot\artisan schedule:run

    保存文件并转到 Azure portal.

  2. Select 你 WebApp 并在 application settings 下找到 WebJobs。单击“添加”,将出现一个侧面板。

  3. 给 WebJob 一个 name,例如 LaravelSchulder上传第一步的runsched.cmd文件。

  4. Type 设置为 Triggered 并确保 Triggers 已设置至预定.

  5. 现在您可以指定必须触发命令的频率。即使门户网站说 'CRON Expression' cron 格式 not 与 Linux 表示法相同。如果您将表达式设置为所有星号,如 Laravel 文档中所示,您的命令将每隔 触发一次,这对于大多数应用程序来说太频繁了。正确的 CRON 表达式是:

    0 * * * * *

  6. 如果您的工作看起来像这样,请单击“确定”。

  1. Laravel 调度程序现在每分钟触发一次。要验证一切是否正常工作,您可以自己触发一次作业(Select LaravelSchulder 作业并单击 运行)并检查作业状态。如果 Azure 在状态下报告 失败,请检查日志并确保您输入了正确的路径'

希望解释清楚。

快速说明:Microsoft 喜欢定期更改 Azure 门户,因此这些说明中的任何一个现在可能已经更改。