PluginProbe ʕ •ᴥ•ʔ
Download Manager / trunk
Download Manager vtrunk
3.3.62 3.3.61 3.3.60 3.3.59 3.3.58 3.3.57 3.3.56 trunk 2.1.3 2.3.0 2.5.96 2.5.97 2.6.2 2.6.96 2.8.3 2.9.99 3.0.4 3.1.05 3.1.07 3.1.08 3.1.11 3.1.12 3.1.14 3.1.17 3.1.18 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.2.04 3.2.13 3.2.14 3.2.16 3.2.18 3.2.19 3.2.21 3.2.22 3.2.23 3.2.24 3.2.25 3.2.27 3.2.28 3.2.29 3.2.30 3.2.31 3.2.32 3.2.33 3.2.34 3.2.35 3.2.37 3.2.38 3.2.39 3.2.40 3.2.41 3.2.42 3.2.43 3.2.44 3.2.45 3.2.46 3.2.47 3.2.48 3.2.49 3.2.50 3.2.51 3.2.52 3.2.53 3.2.54 3.2.55 3.2.56 3.2.57 3.2.58 3.2.59 3.2.60 3.2.61 3.2.63 3.2.64 3.2.65 3.2.66 3.2.67 3.2.68 3.2.69 3.2.70 3.2.71 3.2.72 3.2.73 3.2.74 3.2.75 3.2.76 3.2.77 3.2.78 3.2.79 3.2.80 3.2.81 3.2.82 3.2.83 3.2.84 3.2.85 3.2.86 3.2.87 3.2.88 3.2.89 3.2.90 3.2.91 3.2.92 3.2.93 3.2.94 3.2.95 3.2.96 3.2.97 3.2.98 3.2.99 3.3.00 3.3.01 3.3.02 3.3.03 3.3.04 3.3.05 3.3.06 3.3.07 3.3.08 3.3.09 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.16 3.3.17 3.3.18 3.3.19 3.3.20 3.3.21 3.3.22 3.3.23 3.3.24 3.3.25 3.3.26 3.3.27 3.3.28 3.3.29 3.3.30 3.3.31 3.3.32 3.3.33 3.3.34 3.3.35 3.3.36 3.3.37 3.3.38 3.3.39 3.3.40 3.3.41 3.3.42 3.3.43 3.3.44 3.3.45 3.3.46 3.3.47 3.3.48 3.3.49 3.3.50 3.3.51 3.3.52 3.3.53 3.3.54 3.3.55
download-manager / src / __ / CronJob.php
download-manager / src / __ Last commit date
HTML 1 year ago views 5 months ago Apply.php 6 months ago Cron.php 1 year ago CronJob.php 8 months ago CronJobs.php 2 months ago Crypt.php 2 months ago DownloadStats.php 5 months ago Email.php 1 week ago EmailCron.php 1 year ago FileSystem.php 1 year ago Installer.php 4 days ago Messages.php 1 year ago Query.php 5 months ago Session.php 4 days ago Settings.php 5 years ago SimpleMath.php 5 years ago TempStorage.php 4 days ago Template.php 5 months ago UI.php 6 months ago Updater.php 4 years ago UserAgent.php 2 years ago __.php 2 months ago __MailUI.php 3 years ago
CronJob.php
91 lines
1 <?php
2 /**
3 * User: shahjada
4 * Date: 2019-03-21
5 * Time: 13:14
6 */
7
8 namespace WPDM\__;
9
10
11 class CronJob
12 {
13 private static $instance;
14
15 public static function getInstance()
16 {
17 if (self::$instance === null) {
18 self::$instance = new self;
19 }
20 return self::$instance;
21 }
22
23 function cronKey() {
24 $key = get_option('__wpdm_cron_key');
25 if(!$key) {
26 $key = wp_generate_password(32, false);
27 update_option('__wpdm_cron_key', $key);
28 }
29 return $key;
30 }
31
32 static function create($type, $data, $execute_at, $repeat_execution = 1, $interval = 0) {
33 global $wpdb;
34 $code = md5($type.$execute_at.json_encode($data));
35 $wpdb->insert("{$wpdb->prefix}ahm_cron_jobs", [
36 'code' => $code,
37 'type' => $type,
38 'data' => json_encode($data),
39 'execute_at' => $execute_at,
40 'repeat_execution' => max( (int)$repeat_execution, 1 ),
41 'execution_count' => 0,
42 'interval' => $interval,
43 'created_at' => time(),
44 'created_by' => get_current_user_id(),
45
46 ]);
47 }
48
49 static function delete($id) {
50 global $wpdb;
51 $wpdb->delete("{$wpdb->prefix}ahm_cron_jobs", ['ID' => (int)$id]);
52 }
53
54 function executeAll() {
55 global $wpdb;
56 $time = time();
57 $jobs = $wpdb->get_results("select * from {$wpdb->prefix}ahm_cron_jobs where execute_at < $time limit 0, 10");
58 foreach($jobs as $job) {
59 $this->execute($job);
60 }
61 }
62
63 function execute($job) {
64 global $wpdb;
65 if(is_int($job)) {
66 $job = $wpdb->get_row("select * from {$wpdb->prefix}ahm_cron_jobs where ID = '{$job}'");
67 }
68 if($job->execution_count >= $job->repeat_execution) {
69 $wpdb->delete("{$wpdb->prefix}ahm_cron_jobs", ['ID' => $job->ID]);
70 } else {
71 $target = $job->type;
72 $payload = new $target(json_decode($job->data));
73 $payload->dispatch();
74 $execute_at = $job->execute_at + ($job->interval * 86400);
75 $wpdb->update( "{$wpdb->prefix}ahm_cron_jobs", [
76 'execution_count' => $job->execution_count + 1,
77 'execute_at' => $execute_at,
78 ], [ 'ID' => $job->ID ] );
79 }
80 }
81
82 static function getAll() {
83 global $wpdb;
84 // $time = time();
85 // where execute_at < $time
86 $jobs = $wpdb->get_results("select * from {$wpdb->prefix}ahm_cron_jobs");
87 return $jobs;
88 }
89 }
90
91