Background Jobs (Cron)ΒΆ

Background/cron jobs are usually registered in the appinfo/app.php by using the addRegularTask method, the class and the method to run:

<?php
\OCP\Backgroundjob::addRegularTask('\OCA\MyApp\Cron\SomeTask', 'run');

The class for the above example would live in cron/sometask.php. Try to keep the method as small as possible because its hard to test static methods. Simply reuse the app container and execute a service that was registered in it:

<?php
namespace OCA\MyApp\Cron;

use \OCA\MyApp\AppInfo\Application;

class SomeTask {

    public static function run() {
        $app = new Application();
        $container = $app->getContainer();
        $container->query('SomeService')->run();
    }

}

Don’t forget to configure the cron service on the server by executing:

sudo crontab -u http -e

where http is your Web server user, and add:

*/15  *  *  *  * php -f /srv/http/nextcloud/cron.php