2017-04-11 50 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您也可以使用技術相同的工匠。但是你可以在服務器的時間安排上遇到麻煩 –