Ad

Octobercms Task Scheduling Not Working

- 1 answer

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.

Ad

Answer

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.

Ad
source: stackoverflow.com
Ad