我正在寻找一种将 azure 调度程序或 Web 作业链接到 Laravel 调度的方法。
我的理解是,要设置 Azure 计划,我需要一个端点来链接到我的 Laravel,我不知道如何实现。
我正在寻找一种将 azure 调度程序或 Web 作业链接到 Laravel 调度的方法。
我的理解是,要设置 Azure 计划,我需要一个端点来链接到我的 Laravel,我不知道如何实现。
TL;博士
您可以使用带有命令行脚本的 WebApps 下的 WebJobs 来触发 Laravel 调度程序。
完整参考
Azure 提供的 WebJobs 可以触发各种触发器,包括类似 Cron 的调度程序。为了运行 Laravel 调度程序,您需要schedule:run
每分钟触发一次命令。现在我假设 artisan 住在哪D:\home\site\wwwroot\artisan
个是基于 PHP 的部署的默认位置。
创建一个名为的新文件runsched.cmd
或任何其他文件,只要它具有.cmd
扩展名即可。用记事本编辑文件并添加:
php %HOME%\site\wwwroot\artisan schedule:run
保存文件并转到Azure 门户。
选择您的 WebApp 并在应用程序设置下找到WebJobs。单击添加,将出现一个侧面板。
为 WebJob命名,例如LaravelSchulder并从第一步上传文件。runsched.cmd
将Type设置为Triggered并确保Triggers设置为Scheduled。
现在您可以指定必须触发命令的频率。甚至门户网站都说“CRON 表达式”,cron 格式与Linux 表示法不同。如果您将表达式设置为所有星号,如 Laravel 文档中所示,您的命令将每秒触发一次,这对于大多数应用程序来说太频繁了。正确的 CRON 表达式是:
0 * * * * *
如果您的工作看起来像这样,请单击确定。
希望能解释一下。
快速说明:Microsoft 喜欢定期更改 Azure 门户,因此这些说明中的任何一个现在可能已经更改。