PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.9.0
ووسلام – همگام سازی ووکامرس و باسلام v1.9.0
1.10.19 1.10.20 1.10.18 1.10.17 1.10.15 1.10.14 1.10.13 1.10.12 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.2 1.9.1 1.9.0 1.8.8 1.8.5 1.8.6 All 53 releases
sync-basalam / includes / Jobs / LockManager.php

LockManager.php in ووسلام – همگام سازی ووکامرس و باسلام 1.9.0, at includes/Jobs/LockManager.php

47 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SyncBasalam\Jobs;
4
5 defined('ABSPATH') || exit;
6
7 class LockManager
8 {
9 public function acquire(string $jobType, int $timeout = 0): bool
10 {
11 return $this->acquireNamedLock('sync_basalam_job_' . $jobType, $timeout);
12 }
13
14 public function release(string $jobType): bool
15 {
16 return $this->releaseNamedLock('sync_basalam_job_' . $jobType);
17 }
18
19 public function acquireGlobalJobsLock(int $timeout = 0): bool
20 {
21 return $this->acquireNamedLock('sync_basalam_jobs_runner', $timeout);
22 }
23
24 public function releaseGlobalJobsLock(): bool
25 {
26 return $this->releaseNamedLock('sync_basalam_jobs_runner');
27 }
28
29 private function acquireNamedLock(string $lockName, int $timeout = 0): bool
30 {
31 global $wpdb;
32
33 $result = $wpdb->get_var($wpdb->prepare("SELECT GET_LOCK(%s, %d)", $lockName, $timeout));
34
35 return $result === '1';
36 }
37
38 private function releaseNamedLock(string $lockName): bool
39 {
40 global $wpdb;
41
42 $result = $wpdb->get_var($wpdb->prepare("SELECT RELEASE_LOCK(%s)", $lockName));
43
44 return $result === '1';
45 }
46 }
47