PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 2.0.3
JetBackup – Backup, Restore & Migrate v2.0.3
3.1.22.4 3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / com / lib / BackupGuard / Core / SGBGTask.php
backup / com / lib / BackupGuard / Core Last commit date
ISGArchiveDelegate.php 3 years ago SGBGArchive.php 3 years ago SGBGArchiveCdr.php 3 years ago SGBGArchiveHelper.php 3 years ago SGBGCache.php 3 years ago SGBGCacheableFile.php 3 years ago SGBGDirectoryTreeFile.php 3 years ago SGBGFile.php 3 years ago SGBGFileHelper.php 3 years ago SGBGJsonFile.php 3 years ago SGBGLog.php 3 years ago SGBGReloader.php 3 years ago SGBGStateFile.php 3 years ago SGBGTask.php 3 years ago
SGBGTask.php
124 lines
1 <?php
2 /*
3 @ class Task
4 @ version 1.0.1
5 @ updated 26/01/2021
6 */
7
8 require_once(__DIR__.'/SGBGStateFile.php');
9 require_once(__DIR__.'/SGBGReloader.php');
10
11 class SGBGTask
12 {
13 private $stateFile = null;
14
15 public function getStateFile()
16 {
17 return $this->stateFile;
18 }
19
20 public function setStateFile($stateFile)
21 {
22 $this->stateFile = $stateFile;
23 }
24
25 private function prepareStateFile($stateFilePath)
26 {
27 $file = new SGBGStateFile($stateFilePath);
28 $file->getCache()->setCacheMode(SGBGCache::CACHE_MODE_TIMEOUT);
29 $file->getCache()->setCacheTimeout(10);
30 $file->load();
31
32 $this->setStateFile($file);
33 }
34
35 private function prepareReloader()
36 {
37 $reloader = SGBGReloader::getInstance();
38 $reloader->setInterval(23);
39 $reloader->setLastReloadTs((int)$this->getStateFile()->getData('last_reload_ts'));
40 }
41
42 private function prepareStateFileStatus($count)
43 {
44 $stateFile = $this->getStateFile();
45
46 if ($stateFile->getStatus() == SGBGStateFile::STATUS_STARTED || $stateFile->getStatus() == SGBGStateFile::STATUS_BUSY) {
47 die; //the task is already in progress
48 }
49 else if ($stateFile->getStatus() == SGBGStateFile::STATUS_DONE) {
50 $stateFile->setStatus(SGBGStateFile::STATUS_READY);
51 }
52
53 if ($stateFile->getStatus() == SGBGStateFile::STATUS_READY) {
54 $stateFile->setStatus(SGBGStateFile::STATUS_STARTED);
55 $stateFile->setCount((int)$count);
56 $stateFile->setData('last_reload_ts', time());
57 $stateFile->save();
58 }
59 else if ($stateFile->getStatus() == SGBGStateFile::STATUS_RESUME) {
60 $stateFile->setStatus(SGBGStateFile::STATUS_BUSY);
61 $stateFile->save();
62 }
63 }
64
65 public function prepare($stateFilePath)
66 {
67 $this->prepareStateFile($stateFilePath);
68 }
69
70 public function start($count)
71 {
72 $this->prepareStateFileStatus($count);
73 $this->prepareReloader();
74 }
75
76 public function setParam($key, $value)
77 {
78 $this->getStateFile()->setData($key, $value);
79 }
80
81 public function getParam($key)
82 {
83 return $this->getStateFile()->getData($key);
84 }
85
86 public function continueTask($exitCallable)
87 {
88 $reloader = SGBGReloader::getInstance();
89
90 if ($reloader->shouldReload()) {
91 $stateFile = $this->getStateFile();
92 $stateFile->setStatus(SGBGStateFile::STATUS_RESUME);
93 $stateFile->setData('last_reload_ts', time());
94
95 $exitCallable();
96
97 //we call this after the callable because we may change status params inside the callable
98 $stateFile->save(true);
99 $reloader->reload();
100 die();
101 }
102 }
103
104 public function endChunk()
105 {
106 $stateFile = $this->getStateFile();
107 $stateFile->setOffset($stateFile->getOffset() + 1);
108 $stateFile->save();
109 }
110
111 public function end($removeStateFile = true)
112 {
113 $stateFile = $this->getStateFile();
114
115 if ($removeStateFile) {
116 $stateFile->remove();
117 return;
118 }
119
120 $stateFile->setStatus(SGBGStateFile::STATUS_DONE);
121 $stateFile->save(true);
122 }
123 }
124