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.
This commit is contained in:
committed by
Frédéric Guillot
parent
87a94201aa
commit
5dae1e2e83
32
app/Controller/CronjobController.php
Normal file
32
app/Controller/CronjobController.php
Normal file
@@ -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');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user