PluginProbe ʕ •ᴥ•ʔ
Hostinger Tools / 3.0.71
Hostinger Tools v3.0.71
3.0.71 3.0.70 3.0.69 3.0.68 3.0.67 3.0.66 1.8.1 1.8.2 1.8.3 1.9.1 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.4 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.2 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 3.0.0 3.0.10 3.0.11 3.0.12 3.0.13 3.0.14 3.0.15 3.0.16 3.0.17 3.0.18 3.0.19 3.0.2 3.0.20 3.0.21 3.0.22 3.0.23 3.0.24 3.0.25 3.0.26 3.0.27 3.0.28 3.0.29 3.0.3 3.0.30 3.0.31 3.0.32 3.0.33 3.0.34 3.0.35 3.0.36 3.0.37 3.0.38 3.0.39 3.0.4 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.0.46 3.0.47 3.0.48 3.0.49 3.0.5 3.0.50 3.0.51 3.0.52 3.0.53 3.0.54 3.0.55 3.0.56 3.0.57 3.0.58 3.0.59 3.0.6 3.0.60 3.0.61 3.0.62 3.0.65 3.0.7 3.0.8 3.0.9 trunk 1.8.0
hostinger / includes / Admin / Jobs / AbstractJob.php
hostinger / includes / Admin / Jobs Last commit date
AbstractBatchedJob.php 10 months ago AbstractJob.php 10 months ago ActionScheduler.php 11 months ago JobInitializer.php 10 months ago JobInterface.php 10 months ago LlmsTxtInjectContentJob.php 10 months ago NotifyMcpJob.php 11 months ago
AbstractJob.php
55 lines
1 <?php
2 declare( strict_types=1 );
3
4 namespace Hostinger\Admin\Jobs;
5
6 use Exception;
7
8 defined( 'ABSPATH' ) || exit;
9
10 abstract class AbstractJob implements JobInterface {
11
12 protected ActionScheduler $action_scheduler;
13
14 public function __construct( ActionScheduler $action_scheduler ) {
15 $this->action_scheduler = $action_scheduler;
16 }
17
18 public function init(): void {
19 add_action( $this->get_process_item_hook(), array( $this, 'handle_process_items_action' ) );
20 add_action(
21 $this->get_start_hook(),
22 function ( $args ) {
23 $this->schedule( $args );
24 }
25 );
26 }
27
28 public function can_schedule( $args = array() ): bool {
29 return ! $this->is_running( $args );
30 }
31
32 public function handle_process_items_action( array $args = array() ): void {
33 $this->process_items( $args );
34 }
35
36 public function get_process_item_hook(): string {
37 return "{$this->get_hook_base_name()}process_item";
38 }
39
40 public function get_start_hook(): string {
41 return $this->get_name();
42 }
43
44 protected function is_running( ?array $args = array() ): bool {
45 return $this->action_scheduler->has_scheduled_action( $this->get_process_item_hook(), array( $args ) );
46 }
47
48 protected function get_hook_base_name(): string {
49 return "{$this->action_scheduler->get_group()}/jobs/{$this->get_name()}/";
50 }
51
52 abstract public function get_name(): string;
53 abstract protected function process_items( array $args );
54 }
55