miniflux-legacy/worker.php

45 lines
1.0 KiB
PHP
Raw Normal View History

2016-05-02 04:03:21 +02:00
<?php
use Pheanstalk\Pheanstalk;
require __DIR__.'/common.php';
if (php_sapi_name() !== 'cli') {
die('This script can run only from the command line.'.PHP_EOL);
}
$options = getopt('', array(
'stop',
));
function check_job_left(Pheanstalk $connection, array $options)
{
if (isset($options['stop'])) {
$queues = $connection->listTubes();
if (in_array(BEANSTALKD_QUEUE, $queues)) {
$stats = $connection->statsTube(BEANSTALKD_QUEUE);
echo 'Jobs in queue: '.$stats->current_jobs_ready.PHP_EOL;
(int) $stats->current_jobs_ready === 0 && exit(0);
} else {
echo 'No queue'.PHP_EOL;
exit(0);
}
}
}
2016-05-02 04:03:21 +02:00
$connection = new Pheanstalk(BEANSTALKD_HOST);
check_job_left($connection, $options);
2016-05-02 04:03:21 +02:00
while ($job = $connection->reserveFromTube(BEANSTALKD_QUEUE)) {
$feed_id = $job->getData();
2016-05-02 04:03:21 +02:00
echo 'Processing feed_id='.$feed_id.PHP_EOL;
2016-05-02 04:03:21 +02:00
Model\Feed\refresh($feed_id);
$connection->delete($job);
check_job_left($connection, $options);
2016-05-02 04:03:21 +02:00
}