laravel - laravel 任务调度器删除帖子
问题描述
我在 laravel 中设置了一个简单的任务计划程序,一切正常,我遇到的唯一问题是帖子在我设置的时间没有删除。我希望帖子在创建帖子后 5 分钟后删除,不知道为什么我的帖子会在一分钟后删除。我相信我希望我的任务计划程序每分钟检查一次,因为每个帖子都有不同的删除时间。这是我的调度程序:
protected function schedule(Schedule $schedule)
{
$schedule->call(function (){
$post= Post::where('created_at', '<', Carbon::now()->addMinutes(5))->delete();
})->everyMinute();
}
解决方案
从您的问题来看,您似乎应该减去分钟数,而不是添加它们
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
Post::where('created_at', '<', \Carbon\Carbon::now()->subMinutes(5))->delete();
})->everyMinute();
}
如果您只是使用Carbon::now()
,请确保使用 use 语句导入它。如果你像我在这个例子中那样使用它,你不需要导入它。
此外,由于您$post
在删除后没有使用该变量,因此您不需要分配它。
推荐阅读
- r - 使用 shinyalert 确认数据更新
- r - 如何绕过空数据集的 MapView 错误
- python - 如何读取 .txt 文件,并在 python 中每一行的特定位置/索引后添加空格
- django - 在所有用户的注册模型显示列表中(外键)
- list - 编写基本的 haskell 函数,获取 Int x 并在 [1..x] 上执行函数
- python - Django -- 如何将表单提交视图调用到数据上传视图
- python - 如何在不重新输入的情况下调整布尔掩码?
- python - 在不实例化任何对象的情况下使用实例方法可能是危险的还是有用的?
- android - 在recyclerView中一屏显示多个项目
- reactjs - 当我在 getInitialProps 中调度时,下一个 js 应用程序不会将响应发送回浏览器