diff options
author | Miodrag Tokić <miki@denimo.io> | 2018-06-04 14:50:17 +0200 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-06-04 09:59:55 -0700 |
commit | 5dae1e2e8397e6a374b16ff391719e1767ba4250 (patch) | |
tree | 07e0f4bd69903916c88bb268e660e5adaec4c1a6 /app/Controller/CronjobController.php | |
parent | 87a94201aa1c48394798b4780a7ab8a03d303f8c (diff) |
Run cron jobs via URL
Kanboard supports running cron jobs via CLI. There are hosting services
that don't offer CLI access, but they do offer calling a URL
periodically. This feature is often used as a CLI cron job replacement.
This commit adds a CronjobController called by "/cronjob" URL that will
execute cron jobs as they were executed via CLI. The URL has public
access, but is protected using the webhook token. The "/cronjob" URL
should be called via HTTPS.
Diffstat (limited to 'app/Controller/CronjobController.php')
-rw-r--r-- | app/Controller/CronjobController.php | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/app/Controller/CronjobController.php b/app/Controller/CronjobController.php new file mode 100644 index 00000000..082fadfa --- /dev/null +++ b/app/Controller/CronjobController.php @@ -0,0 +1,32 @@ +<?php + +namespace Kanboard\Controller; + +use Kanboard\Controller\BaseController; +use Symfony\Component\Console\Input\ArrayInput; +use Symfony\Component\Console\Output\NullOutput; + +/** + * Class CronjobController + * + * Runs cron jobs via URL + * + * @package Kanboard\Controller + */ +class CronjobController extends BaseController +{ + public function run() + { + $this->checkWebhookToken(); + + $input = new ArrayInput(array( + 'command' => 'cronjob', + )); + $output = new NullOutput(); + + $this->cli->setAutoExit(false); + $this->cli->run($input, $output); + + $this->response->html('Cronjob executed'); + } +} |