Server IP : 104.21.14.103 / Your IP : 18.119.253.168 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/home/giankuin/thietke365.net/wp-content/plugins/mailpoet/lib/Cron/ |
Upload File : |
<?php declare(strict_types = 1); namespace MailPoet\Cron; if (!defined('ABSPATH')) exit; use MailPoet\Cron\ActionScheduler\Actions\DaemonRun; use MailPoet\Cron\ActionScheduler\Actions\DaemonTrigger; use MailPoet\Cron\ActionScheduler\ActionScheduler; use MailPoet\Cron\ActionScheduler\RemoteExecutorHandler; use MailPoet\WP\Functions as WPFunctions; class DaemonActionSchedulerRunner { /** @var ActionScheduler */ private $actionScheduler; /** @var RemoteExecutorHandler */ private $remoteExecutorHandler; /** @var DaemonTrigger */ private $daemonTriggerAction; /** @var DaemonRun */ private $daemonRunAction; /** @var WPFunctions */ private $wp; public function __construct( ActionScheduler $actionScheduler, RemoteExecutorHandler $remoteExecutorHandler, DaemonTrigger $daemonTriggerAction, DaemonRun $daemonRunAction, WPFunctions $wp ) { $this->actionScheduler = $actionScheduler; $this->remoteExecutorHandler = $remoteExecutorHandler; $this->daemonTriggerAction = $daemonTriggerAction; $this->daemonRunAction = $daemonRunAction; $this->wp = $wp; } public function init(bool $isActive = true): void { if (!$isActive) { $this->deactivateOnTrigger(); return; } $this->daemonRunAction->init(); $this->daemonTriggerAction->init(); $this->remoteExecutorHandler->init(); } public function deactivate(): void { $this->actionScheduler->unscheduleAllCronActions(); } /** * Unschedule all MailPoet actions when next "trigger" action is processed. * Note: We can't unschedule the actions directly inside the trigger action itself, * because the action is recurring and would reschedule itself anyway. * We need do the deactivation after the action scheduler process finishes. */ private function deactivateOnTrigger(): void { $this->wp->addAction(DaemonTrigger::NAME, [$this, 'deactivateAfterProcess']); } public function deactivateAfterProcess(): void { $this->wp->addAction('action_scheduler_after_process_queue', [$this, 'deactivate']); } }