Add command to execute individual job

This commit is contained in:
Frederic Guillot
2017-01-28 10:50:25 -05:00
parent 20832b439d
commit 9357b3a4ec
5 changed files with 46 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ Version 1.0.38 (unreleased)
New features:
* User invites
* Add command to execute individual job (mostly for debugging)
Improvements:

View File

@@ -0,0 +1,35 @@
<?php
namespace Kanboard\Console;
use Kanboard\Core\Queue\JobHandler;
use SimpleQueue\Job;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
/**
* Class JobCommand
*
* @package Kanboard\Console
* @author Frederic Guillot
*/
class JobCommand extends BaseCommand
{
protected function configure()
{
$this
->setName('job')
->setDescription('Execute individual job (read payload from stdin)')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$payload = fgets(STDIN);
$job = new Job();
$job->unserialize($payload);
JobHandler::getInstance($this->container)->executeJob($job);
}
}

View File

@@ -64,7 +64,7 @@ class QueueManager extends Base
public function listen()
{
if ($this->queue === null) {
throw new LogicException('No queue driver defined!');
throw new LogicException('No queue driver defined or unable to connect to broker!');
}
while ($job = $this->queue->pull()) {

View File

@@ -5,6 +5,7 @@ namespace Kanboard\ServiceProvider;
use Kanboard\Console\CronjobCommand;
use Kanboard\Console\DatabaseMigrationCommand;
use Kanboard\Console\DatabaseVersionCommand;
use Kanboard\Console\JobCommand;
use Kanboard\Console\LocaleComparatorCommand;
use Kanboard\Console\LocaleSyncCommand;
use Kanboard\Console\PluginInstallCommand;
@@ -52,6 +53,7 @@ class CommandProvider implements ServiceProviderInterface
$application->add(new TaskTriggerCommand($container));
$application->add(new CronjobCommand($container));
$application->add(new WorkerCommand($container));
$application->add(new JobCommand($container));
$application->add(new ResetPasswordCommand($container));
$application->add(new ResetTwoFactorCommand($container));
$application->add(new PluginUpgradeCommand($container));

View File

@@ -30,6 +30,7 @@ Options:
Available commands:
cronjob Execute daily cronjob
help Displays help for a command
job Execute individual job (read payload from stdin)
list Lists commands
worker Execute queue worker
db
@@ -207,6 +208,12 @@ Note: Installed files will have the same permissions as the current user
./cli worker
```
### Execute individual job (mostly for debugging)
```bash
echo 'RAW_JOB_DATA' | ./cli job
```
### Execute database migrations
If the parameter `DB_RUN_MIGRATIONS` is set to `false`, you have run the database migrations manually: