%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/activity/jobs/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/activity/jobs/SendMailSummary.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\activity\jobs;
use humhub\modules\activity\Module;
use humhub\modules\queue\interfaces\ExclusiveJobInterface;
use Yii;
use humhub\modules\queue\ActiveJob;
use humhub\modules\activity\components\MailSummaryProcessor;
use humhub\modules\activity\components\MailSummary;
use yii\queue\RetryableJobInterface;
/**
* SendMailSummary
*
* @since 1.2
* @author Luke
*/
class SendMailSummary extends ActiveJob implements ExclusiveJobInterface, RetryableJobInterface
{
/**
* @var int the interval
*/
public $interval;
/**
* @var int maximum 1 hour
*/
private $maxExecutionTime = 60 * 60 * 1;
/**
* @inhertidoc
*/
public function getExclusiveJobId()
{
return get_class($this) . $this->interval;
}
/**
* @inheritdoc
*/
public function run()
{
/** @var Module $module */
$module = Yii::$app->getModule('activity');
if (!$module->enableMailSummaries) {
return;
}
if ($this->interval === MailSummary::INTERVAL_DAILY || $this->interval === MailSummary::INTERVAL_HOURLY || $this->interval === MailSummary::INTERVAL_WEEKLY) {
MailSummaryProcessor::process($this->interval);
} else {
Yii::error('Invalid summary interval given' . $this->interval, 'activity.job');
return;
}
}
/**
* @inheritDoc
*/
public function getTtr()
{
return $this->maxExecutionTime;
}
/**
* @inheritDoc
*/
public function canRetry($attempt, $error)
{
return false;
}
}