Uname:
Linux webm012.cluster130.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software:
Apache
PHP version:
8.0.30 [ PHP INFO ] PHP os:
Linux
Server Ip:
145.239.37.162
Your Ip:
216.73.216.190
User:
dreampi (1009562) | Group:
users (100)
Safe Mode:
OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl
<?php declare(strict_types = 1);
namespace MailPoet\Cron\Workers;
if (!defined('ABSPATH')) exit;
use MailPoet\Config\ServicesChecker;
use MailPoet\Cron\CronWorkerScheduler;
use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Services\SubscribersCountReporter;
use MailPoetVendor\Carbon\Carbon;
class SubscribersStatsReport extends SimpleWorker {
const TASK_TYPE = 'subscribers_stats_report';
/** @var SubscribersCountReporter */
private $subscribersCountReporter;
/** @var ServicesChecker */
private $serviceChecker;
/** @var CronWorkerScheduler */
private $workerScheduler;
public function __construct(
SubscribersCountReporter $subscribersCountReporter,
ServicesChecker $servicesChecker,
CronWorkerScheduler $workerScheduler
) {
parent::__construct();
$this->subscribersCountReporter = $subscribersCountReporter;
$this->serviceChecker = $servicesChecker;
$this->workerScheduler = $workerScheduler;
}
public function checkProcessingRequirements() {
return (bool)$this->serviceChecker->getValidAccountKey();
}
public function processTaskStrategy(ScheduledTaskEntity $task, $timer): bool {
$key = $this->serviceChecker->getValidAccountKey();
if ($key === null) {
return false;
}
$result = $this->subscribersCountReporter->report($key);
// We have a valid key, but request failed
if ($result === false) {
$this->workerScheduler->rescheduleProgressively($task);
}
return $result;
}
public function getNextRunDate() {
$date = Carbon::now()->millisecond(0);
// Spread the check within 6 hours after midnight so that all plugins don't ping the service at the same time
return $date->startOfDay()
->addDay()
->addHours(rand(0, 5))
->addMinutes(rand(0, 59))
->addSeconds(rand(0, 59));
}
}