2017-04-11 53 views
2

我使用的是基于Laravel的OctoberCMS。octobercms任务计划不起作用

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

每一天,我需要删除谁没有激活帐户登记24小时后一些用户,所以我'想使用SHEDULING(如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(); 
} 

注: 我已经改变 - >每天()上 - > everyMinute()以测试它。

+1

您是否设置了此处指定的cron作业:https://octobercms.com/docs/setup/installation#crontab-setup – dragontree

+0

不,我没有接受我没有通过控制台访问服务器,我没有任何想法如何做到这一点,没有SSH访问。 –

回答

2

您可以使用您的主机的经典HTTP调用或类似https://www.setcronjob.com

服务创建插件的根文件夹中的文件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(); 
}); 

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

+0

谢谢,我的朋友已经解决了;)但是我的问题是,为什么我的任务sheduler不工作?我没有把它放在控制台中? –

+0

https://octobercms.inetis.ch/cron-without-command-line您也可以使用技术相同的工匠。但是你可以在服务器的时间安排上遇到麻烦 –