2017-04-11 6 views
2

私はLaravelに基づいてOctoberCMSを使用しています。octobercmsタスクスケジューリングが動作しない

私のサーバーへのSSHアクセスはありません。

I'amはoctobercms私は作るべきdocsによると使用について(cronジョブのような)shedulingタスク

を考えて、私は、登録後24時間以内に自分のアカウントを有効化していない一部のユーザーを削除する必要が毎日カスタムコンポーネントの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

あなたがルートに、プラグインのルートフォルダ内のroutes.phpファイルを作成し、あなたのホストとの古典的なHTTP呼び出しまたはhttps://www.setcronjob.com

のようなサービスを使用することができます。もちろん

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同じ技術で職人を使うこともできます。しかし、あなたはサーバーのタイムアウトにいくつかの問題を抱えることができます –

関連する問題