我正在使用基于 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();
});
当然,你可以添加一些认证来保护它。
关于php - octobercms 任务调度不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43348951/