%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/queue/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/queue/Events.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;
use Yii;
use yii\base\BaseObject;
use yii\base\Event;
use yii\queue\ExecEvent;
use yii\queue\PushEvent;
use humhub\modules\queue\jobs\CleanupExclusiveJobs;
use humhub\modules\queue\interfaces\ExclusiveJobInterface;
use humhub\modules\queue\helpers\QueueHelper;
/**
* Events provides callbacks to handle events.
*
* @since 1.3
* @author luke
*/
class Events extends BaseObject
{
/**
* Cron call back
*
* @param Event $event
*/
public static function onCronRun(Event $event)
{
//Yii::$app->queue->push(new CleanupExclusiveJobs());
}
/**
* Callback for errors while queue execution
*
* @param ExecEvent $event
*/
public static function onQueueError(ExecEvent $event)
{
/* @var $exception \Expection */
$exception = $event->error;
Yii::error('Could not execute queued job! Message: ' . $exception->getMessage() . ' Trace:' . $exception->getTraceAsString(), 'queue');
}
/**
* Callback before new jobs in the queue.
* Handles exclusive jobs.
*
* @param PushEvent $event
*/
public static function onQueueBeforePush(PushEvent $event)
{
if ($event->job instanceof ExclusiveJobInterface) {
// Do not add exclusive jobs if already exists in queue
if (QueueHelper::isQueued($event->job)) {
$event->handled = true;
}
}
}
/**
* Callback after new jobs in the queue.
* Handles exclusive jobs.
*
* @param PushEvent $event
*/
public static function onQueueAfterPush(PushEvent $event)
{
if ($event->job instanceof ExclusiveJobInterface) {
QueueHelper::markAsQueued($event->id, $event->job);
}
}
}