我想知道如何安排一个cron作业在每天00:01运行。
我已经在App/Jobs
文件夹中创建了JOB
<?php
namespace App\Jobs;
use App\Models\Result;
use App\Jobs\Job;
use Illuminate\Contracts\Bus\SelfHandling;
use DB;
set_time_limit(0);
class UpdateActive extends Job implements SelfHandling
{
public static function ActiveUpdate()
{
Result::update(['draw_id' => 1,
'isactive' => 0
]);
}
public static function downGrade()
{
try {
UserRole::update(['permission' => 1,
'isactive' => 2
]);
} catch (QueryException $e ) {
//handle error
}
}
public static function handle()
{
self::ActiveUpdate();
self::downGrade();
}
}
在App/Console/Kernel.php中,我已经将此链接添加到schedule
方法
protected function schedule(Schedule $schedule)
{
/*$schedule->command('inspire')
->hourly(); */
$schedule->call(function () {
$check_draw = \App\Jobs\UpdateActive::ActiveUpdate();
})->everyMinute();
}
请注意,我已将everyMinute用于测试目的
在crontab -e
中,我添加了* * * * * php /home/vagrant/Code/projects/artisan schedule:run 1>> /dev/null 2>&1
但我想调度似乎没有运行,因为当我检查results
表时,isactive
字段没有更改。
我想知道我哪里错了,请。如果有人在L5做过这个。我错过了什么?
3条答案
按热度按时间ryoqjall1#
我想知道如何安排一个cron作业在每天00:01运行。
所以你想让它在每天00:01运行?
答案:
* 旁白:(根据您的意见编辑)*
我会这样做:
命令:
调度程序:
如果您以这种方式执行,您还可以从命令行使用
php artisan update-active
运行它并查看输出。q3qa4bjr2#
使用应用程序\模型\用户;使用DB;
使用照明\控制台\命令;
class CronJob extends命令{ /**控制台命令的名称和签名。 * @var string */ protected $signature = '命令:名称';
} Laravel cron
nfeuvbwi3#