这是我使用 Laravel 4 和 Artisan Command 功能设置 CRON 作业的方式。
首先,使用 Artisan 创建一个新命令。从命令行输入:
php artisan command:make FooCommand
在您的app/commands 文件夹中,您现在将有一个名为FooCommand.php 的新文件。
打开该文件并在函数fire() 中编写代码。这将在您的命令每次运行时运行。还有一些其他函数允许您从命令行捕获参数和选项。
在您的命令文件中,还有$name 和$description 变量需要填写。给您的任务起一个好听的名称和描述,例如:
/**
* The console command name.
*
* @var string
*/
protected $name = 'command:my_foo_command';
/**
* The console command description.
*
* @var string
*/
protected $description = 'A description of what the command does';
完成后,您需要通过打开 app/start/artisan.php 并添加以下内容将其注册到 Artisan:
Artisan::add(new FooCommand);
然后在命令行中使用 Artisan,您可以使用以下命令运行您的任务:
php artisan command:my_foo_command
这只会调用一次命令 - 要让它定期运行,请将以下内容添加到您的 CRONTAB:
1 * * * * /usr/bin/php /path/to/the/artisan command:my_foo_command