3

我正在寻找一种将 azure 调度程序或 Web 作业链接到 Laravel 调度的方法。

我的理解是,要设置 Azure 计划,我需要一个端点来链接到我的 Laravel,我不知道如何实现。

4

1 回答 1

13

TL;博士

您可以使用带有命令行脚本的 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 门户

  2. 选择您的 WebApp 并在应用程序设置下找到WebJobs。单击添加,将出现一个侧面板。

  3. 为 WebJob命名,例如LaravelSchulder并从第一步上传文件。runsched.cmd

  4. Type设置为Triggered并确保Triggers设置为Scheduled

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

    0 * * * * *

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

Azure WebJob Laravel Schuduler

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

希望能解释一下。

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

于 2016-07-28T10:03:18.603 回答