%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/queue/helpers/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/queue/helpers/QueueHelper.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\queue\helpers;
use Yii;
use yii\base\BaseObject;
use yii\base\InvalidArgumentException;
use yii\base\InvalidParamException;
use yii\queue\Queue;
use humhub\modules\queue\interfaces\ExclusiveJobInterface;
use humhub\modules\queue\models\QueueExclusive;
/**
* Queue Helpers
*
* @author Luke
*/
class QueueHelper extends BaseObject
{
public static function isQueued(ExclusiveJobInterface $job)
{
$queueExclusive = QueueExclusive::findOne(['id' => $job->getExclusiveJobId()]);
if ($queueExclusive === null || $queueExclusive->job_status == Queue::STATUS_DONE) {
return false;
}
$jobInQueue = true;
try {
if (Yii::$app->queue->isDone($queueExclusive->job_message_id)) {
$jobInQueue = false;
}
} catch (InvalidArgumentException $ex) {
// not exists
$jobInQueue = false;
} catch (InvalidParamException $ex) {
// not exists
$jobInQueue = false;
}
if (!$jobInQueue) {
$queueExclusive->delete();
return false;
}
return true;
}
public static function markAsQueued($jobQueueId, ExclusiveJobInterface $job)
{
$queueExclusive = QueueExclusive::findOne(['id' => $job->getExclusiveJobId()]);
if ($queueExclusive === null) {
$queueExclusive = new QueueExclusive();
$queueExclusive->id = $job->getExclusiveJobId();
}
$queueExclusive->job_message_id = $jobQueueId;
$queueExclusive->save();
}
}