Move exception handling from concrete workers into processTask() [MAILPOET-2385]

This commit is contained in:
wxa
2019-09-30 07:59:33 +03:00
committed by Jack Kitterhing
parent 2a0bf3f3c8
commit 2a48d0846d
6 changed files with 29 additions and 68 deletions

View File

@ -28,31 +28,26 @@ class InactiveSubscribers extends SingleInstanceSimpleWorker {
function processTaskStrategy(ScheduledTask $task) {
try {
$tracking_enabled = (bool)$this->settings->get('tracking.enabled');
if (!$tracking_enabled) {
self::schedule();
return true;
}
$days_to_inactive = (int)$this->settings->get('deactivate_subscriber_after_inactive_days');
// Activate all inactive subscribers in case the feature is turned off
if ($days_to_inactive === 0) {
$this->inactive_subscribers_controller->reactivateInactiveSubscribers();
self::schedule();
return true;
}
// Handle activation/deactivation within interval
while ($this->inactive_subscribers_controller->markInactiveSubscribers($days_to_inactive, self::BATCH_SIZE) === self::BATCH_SIZE) {
CronHelper::enforceExecutionLimit($this->timer);
};
while ($this->inactive_subscribers_controller->markActiveSubscribers($days_to_inactive, self::BATCH_SIZE) === self::BATCH_SIZE) {
CronHelper::enforceExecutionLimit($this->timer);
};
$tracking_enabled = (bool)$this->settings->get('tracking.enabled');
if (!$tracking_enabled) {
self::schedule();
} catch (\Exception $e) {
$this->stopProgress($task);
throw $e;
return true;
}
$days_to_inactive = (int)$this->settings->get('deactivate_subscriber_after_inactive_days');
// Activate all inactive subscribers in case the feature is turned off
if ($days_to_inactive === 0) {
$this->inactive_subscribers_controller->reactivateInactiveSubscribers();
self::schedule();
return true;
}
// Handle activation/deactivation within interval
while ($this->inactive_subscribers_controller->markInactiveSubscribers($days_to_inactive, self::BATCH_SIZE) === self::BATCH_SIZE) {
CronHelper::enforceExecutionLimit($this->timer);
};
while ($this->inactive_subscribers_controller->markActiveSubscribers($days_to_inactive, self::BATCH_SIZE) === self::BATCH_SIZE) {
CronHelper::enforceExecutionLimit($this->timer);
};
self::schedule();
return true;
}
}