【问题标题】:laravel task scheduler deleting a postlaravel 任务调度器删除帖子
【发布时间】:2018-09-01 02:11:24
【问题描述】:

我在 laravel 中设置了一个简单的任务调度程序,一切正常,我遇到的唯一问题是帖子在我设置的时间没有删除。我希望帖子在创建帖子后 5 分钟后删除,不知道为什么我的帖子会在一分钟后删除。我相信我希望我的任务计划程序每分钟检查一次,因为每个帖子都有不同的删除时间。这是我的调度程序:

protected function schedule(Schedule $schedule)
{


    $schedule->call(function (){
    $post=    Post::where('created_at', '<', Carbon::now()->addMinutes(5))->delete();
    })->everyMinute();
}

【问题讨论】:

  • 您需要将每个帖子的 everyMinute 更改为 dinamyc 吗?
  • @AlexanderVillalobos 是的,我需要做的是,以便每个帖子在帖子创建后 5 分钟后删除。
  • everyFiveMinutes(); 这个命令是为了执行你的任务 5 分钟

标签: laravel laravel-5


【解决方案1】:

从您的问题看来,您应该减去分钟数,而不是添加它们

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        Post::where('created_at', '<', \Carbon\Carbon::now()->subMinutes(5))->delete();
    })->everyMinute();
}

如果您只是使用Carbon::now(),请确保使用 use 语句导入它。如果你像我在这个例子中那样使用它,你就不需要导入它。

此外,由于您在删除后没有使用$post 变量,因此您不需要分配它。

【讨论】:

  • 好的,谢谢@SimonR,这是我一直在寻找的,所以一旦 created_at 到达帖子删除的碳,任务就会每分钟运行一次
猜你喜欢
  • 1970-01-01
  • 2014-04-20
  • 2021-10-22
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
  • 2014-03-09
相关资源
最近更新 更多