我在laravel中设置了一个简单的任务计划程序,一切正常,我遇到的唯一问题是,在我设置时,帖子并未删除。我想在帖子创建后的5分钟后删除帖子,不确定为什么在一分钟后删除我的帖子。我相信我希望我的任务计划程序每分钟后检查一次,因为每个帖子都有不同的删除时间。这是我的调度程序:
protected function schedule(Schedule $schedule)
{
$schedule->call(function (){
$post= Post::where('created_at', '<', Carbon::now()->addMinutes(5))->delete();
})->everyMinute();
}
答案 0 :(得分:1)
从您的问题中看来,您似乎应该减去分钟,而不要加上分钟
188.114.110.199 - - [31/Aug/2018:13:08:17 -0400] "GET /?_=1535730766583 HTTP/1.1" 500 262 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 S
162.158.167.141 - - [31/Aug/2018:13:08:17 -0400] "GET /?_=1535725426589 HTTP/1.1" 500 262 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
如果您仅使用protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
Post::where('created_at', '<', \Carbon\Carbon::now()->subMinutes(5))->delete();
})->everyMinute();
}
,请确保使用use语句导入它。如果您像在本示例中一样使用它,则无需导入。
此外,由于删除后没有使用Carbon::now()
变量,因此无需分配变量。