我知道如何在 Linux 服务器上运行 cron 作业,
我知道如何使用 $schedule->command('foo')->daily();
我已多次阅读此文档https://laravel.com/docs/5.0/artisan https://laravel.com/docs/5.0/artisan
但我的问题是我应该在哪里准确地写下这一行
$schedule->command('foo')->daily();?
$schedule 变量实际上是什么?我的意思是,这是父类中我们可以直接调用的任何预定义变量,如果不是,我们将在文件中包含哪个类以及如何实例化此 $schedule 对象。
我主要关心的是安排作业的优雅方式是什么,在我编写逻辑的代码中编写此代码有什么意义,因为如果我没有错的话,这条线应该在一生中运行一次,因为这会将作业推送到 Jobs 中表然后
* * * * * php /path/to/artisan Schedule:run 1>> /dev/null 2>&1 应该在余下的生命周期中处理它
那么我应该在哪里编写这样的代码,当我们在服务器上部署应用程序时,在启动主 cron 计划:运行之前,该代码将只运行一次。
请有人指导我,为什么没有书面文档来说明如何手动运行计划任务,而无需将其编写在代码中,而在现实世界的 Web 应用程序执行期间会多次调用该代码。
首先,除非你实际上使用的是 Laravel 5.0,特别是,否则你需要确保查看正确的版本文档(如果你使用的是 5.0,特别是,我强烈建议升级,因为它早已不再支持)。当前版本(截至撰写本文时)is 5.5 https://laravel.com/docs/5.5,10月CMS已相应更新。
至于你的问题,如果我理解正确的话,你不想要预定的、重复的工作,但只是简单工匠命令 https://laravel.com/docs/5.5/artisan。要编写 Artisan 命令,您需要在Console/Commands
文件夹(可以使用以下命令生成make:command
Artisan 命令)并将其注册到Console/Kernel.php
。然后您可以通过运行来访问它php artisan your:command
(where your:command
是您为命令选择的名称)。
如果你想安排重复的工作,你可以把它$schedule
线入Console/Kernel.php
. The $schedule
变量是通过 Laravel 的依赖解析器导入的。
如果您有使用的部署脚本,并且想要以编程方式调用该单个命令,则可以这样做与 Artisan::call() https://laravel.com/docs/5.5/artisan#programmatically-executing-commands,在您的部署脚本中(确保导入 Artisan 外观):
Artisan::call('your:command');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)