phplaravelscheduled-tasksoctobercms

octobercms Task scheduling not working


I'm using OctoberCMS based on Laravel.

I don't have SSH access to my server.

Each day I need to delete some users who haven't activated their account in 24 hours after registration, so I'am thinking about use a task sheduling ( like cronjobs)

According to octobercms docs I should make a function for register task sheduling in Custom Component's Plugin.php - I made it.

I made registered users without activation account and older then 1 day.

But problem is that - nothing is happening at all.

It's my code in plugin.php of component:

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();
}

Note: I have changed ->daily() on -> everyMinute() for testing it.


Solution

  • You can use a classic HTTP call with your host or a service like https://www.setcronjob.com

    Create a routes.php file in the root folder of the plugin with the route:

    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();
    });
    

    Of course, you can add some authentication to protect it.