Laravel中的自定义计划删除

ogq8wdun  于 2023-01-18  发布在  其他
关注(0)|答案(2)|浏览(139)

如何做到这一点后,你设置的记录到期时间,它会自动删除。当你设置了一个特定的持续时间超过1年或6个月或15天,它会自动删除记录。我需要什么?

ccrfmcuu

ccrfmcuu1#

这就是我的做法
创建命令

php artisan make:command DeleteSchedule
<?php
// App\Console\Commands\DeleteSchedule
protected $signature = 'deleteschedule';

public function handle()
{
    Model::where('created_at', '<', now()->subMonths(18))
        ->delete();
}

每1天运行一次命令

// App\Console\Kernel
protected function schedule(Schedule $schedule)
{
    $schedule->command('deleteschedule')
        ->daily();
}
b5buobof

b5buobof2#

我不会使用命令,因为您只需每天运行一次,并且不会立即删除记录。这可能会导致一些问题,如显示同一天的旧记录,并处理它们,如果系统使用这些记录做一些事情之后。甚至这些记录的统计数据不会一直准确。
我会亲自使用作业,并安排它们在记录到期时运行。这样,记录将在它们到期的同时被删除。

相关问题