Няма описание

CronDaemon.php 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace MailPoet\Router\Endpoints;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Config\AccessControl;
  5. use MailPoet\Cron\CronHelper;
  6. use MailPoet\Cron\DaemonHttpRunner;
  7. class CronDaemon {
  8. const ENDPOINT = 'cron_daemon';
  9. const ACTION_RUN = 'run';
  10. const ACTION_PING = 'ping';
  11. const ACTION_PING_RESPONSE = 'pingResponse';
  12. public $allowedActions = [
  13. self::ACTION_RUN,
  14. self::ACTION_PING,
  15. self::ACTION_PING_RESPONSE,
  16. ];
  17. public $data;
  18. public $permissions = [
  19. 'global' => AccessControl::NO_ACCESS_RESTRICTION,
  20. ];
  21. /** @var DaemonHttpRunner */
  22. private $daemonRunner;
  23. /** @var CronHelper */
  24. private $cronHelper;
  25. public function __construct(
  26. DaemonHttpRunner $daemonRunner,
  27. CronHelper $cronHelper
  28. ) {
  29. $this->daemonRunner = $daemonRunner;
  30. $this->cronHelper = $cronHelper;
  31. }
  32. public function run($data) {
  33. $this->daemonRunner->run($data);
  34. }
  35. public function ping() {
  36. die($this->cronHelper->pingDaemon());
  37. }
  38. public function pingResponse() {
  39. $this->daemonRunner->ping();
  40. }
  41. }