octobercms 任务调度不工作

octobercms Task scheduling not working

我正在使用基于 Laravel 的 OctoberCMS。

我没有 SSH 访问我的服务器。

每天我需要删除一些注册后 24 小时内未激活帐户的用户,所以我正在考虑使用任务调度(如 cronjobs)

根据 octobercms docs 我应该在自定义组件的 Plugin.php 中创建一个用于注册任务调度的函数 - 我做到了。

我让注册用户没有激活账号并且超过1天。

但问题是 - 什么都没有发生。

这是我在组件 plugin.php 中的代码:

public function registerSchedule($schedule)
{
    $schedule->call(function() {
        \DB::connection('mydb')->table('u')->whereRaw('u.created_at <= NOW() - INTERVAL 1 DAY')->where('is_activated','=',0)->delete();
    })->everyMinute();
}

注意: 我已将 ->daily() 更改为 -> everyMinute() 以进行测试。

您可以对主机或 https://www.setcronjob.com

等服务使用经典 HTTP 调用

使用路径在插件的根文件夹中创建一个 routes.php 文件:

use Route;

Route::get('/yourprefix/delete_users', function () {
DB::connection('mydb')->table('u')->whereRaw('u.created_at <= NOW() - INTERVAL 1 DAY')->where('is_activated','=',0)->delete();
});

当然,你可以添加一些认证来保护它。