mirror of
https://github.com/nextcloud/documentation.git
synced 2026-01-03 18:26:42 +07:00
40 lines
1.1 KiB
ReStructuredText
40 lines
1.1 KiB
ReStructuredText
======================
|
|
Background Jobs (Cron)
|
|
======================
|
|
|
|
.. sectionauthor:: Bernhard Posselt <dev@bernhard-posselt.com>
|
|
|
|
Background/cron jobs are usually registered in the :file:`appinfo/app.php` by using the **addRegularTask** method, the class and the method to run:
|
|
|
|
.. code-block:: php
|
|
|
|
<?php
|
|
\OCP\Backgroundjob::addRegularTask('\OCA\MyApp\Cron\SomeTask', 'run');
|
|
|
|
The class for the above example would live in :file:`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.
|
|
|
|
.. code-block:: php
|
|
|
|
<?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();
|
|
}
|
|
|
|
}
|
|
|
|
Dont 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/owncloud/cron.php
|