@@ -32,7 +32,7 @@ discard block |
||
| 32 | 32 | require_once __DIR__.'/traits/ItemHandlerTrait.php'; |
| 33 | 33 | require_once __DIR__.'/traits/UserHandlerTrait.php'; |
| 34 | 34 | require_once __DIR__.'/traits/EmailTrait.php'; |
| 35 | -require_once __DIR__ . '/taskLogger.php'; |
|
| 35 | +require_once __DIR__.'/taskLogger.php'; |
|
| 36 | 36 | |
| 37 | 37 | class TaskWorker { |
| 38 | 38 | use ItemHandlerTrait; |
@@ -64,7 +64,7 @@ discard block |
||
| 64 | 64 | */ |
| 65 | 65 | public function execute() { |
| 66 | 66 | try { |
| 67 | - if (LOG_TASKS=== true) $this->logger->log('Processing task: ' . print_r($this->taskData, true), 'DEBUG'); |
|
| 67 | + if (LOG_TASKS === true) $this->logger->log('Processing task: '.print_r($this->taskData, true), 'DEBUG'); |
|
| 68 | 68 | // Dispatch selon le type de processus |
| 69 | 69 | switch ($this->processType) { |
| 70 | 70 | case 'item_copy': |
@@ -136,7 +136,7 @@ discard block |
||
| 136 | 136 | $arguments = ''; |
| 137 | 137 | } |
| 138 | 138 | |
| 139 | - if (LOG_TASKS=== true) $this->logger->log('Process: '.$this->processType.' -- '.print_r($arguments, true), 'DEBUG'); |
|
| 139 | + if (LOG_TASKS === true) $this->logger->log('Process: '.$this->processType.' -- '.print_r($arguments, true), 'DEBUG'); |
|
| 140 | 140 | |
| 141 | 141 | // Add 'arguments' only if not empty |
| 142 | 142 | if (!empty($arguments)) { |
@@ -150,7 +150,7 @@ discard block |
||
| 150 | 150 | 'increment_id = %i', |
| 151 | 151 | $this->taskId |
| 152 | 152 | ); |
| 153 | - if (LOG_TASKS=== true) $this->logger->log('Finishing task: ' . $this->taskId, 'DEBUG'); |
|
| 153 | + if (LOG_TASKS === true) $this->logger->log('Finishing task: '.$this->taskId, 'DEBUG'); |
|
| 154 | 154 | } |
| 155 | 155 | |
| 156 | 156 | /** |
@@ -173,7 +173,7 @@ discard block |
||
| 173 | 173 | 'increment_id = %i', |
| 174 | 174 | $this->taskId |
| 175 | 175 | ); |
| 176 | - $this->logger->log('Task failure: ' . $e->getMessage(), 'ERROR'); |
|
| 176 | + $this->logger->log('Task failure: '.$e->getMessage(), 'ERROR'); |
|
| 177 | 177 | } |
| 178 | 178 | |
| 179 | 179 | /** |
@@ -185,16 +185,16 @@ discard block |
||
| 185 | 185 | * @return void |
| 186 | 186 | */ |
| 187 | 187 | private function processSubTasks($arguments) { |
| 188 | - if (LOG_TASKS=== true) $this->logger->log('processSubTasks: '.print_r($arguments, true), 'DEBUG'); |
|
| 188 | + if (LOG_TASKS === true) $this->logger->log('processSubTasks: '.print_r($arguments, true), 'DEBUG'); |
|
| 189 | 189 | // Get all subtasks related to this task |
| 190 | 190 | $subtasks = DB::query( |
| 191 | - 'SELECT * FROM ' . prefixTable('background_subtasks') . ' WHERE task_id = %i AND is_in_progress = 0 ORDER BY `task` ASC', |
|
| 191 | + 'SELECT * FROM '.prefixTable('background_subtasks').' WHERE task_id = %i AND is_in_progress = 0 ORDER BY `task` ASC', |
|
| 192 | 192 | $this->taskId |
| 193 | 193 | ); |
| 194 | 194 | |
| 195 | 195 | // Check if there are any subtasks to process |
| 196 | 196 | if (empty($subtasks)) { |
| 197 | - if (LOG_TASKS=== true) $this->logger->log('No subtask was found for task: ' . $this->taskId, 'DEBUG'); |
|
| 197 | + if (LOG_TASKS === true) $this->logger->log('No subtask was found for task: '.$this->taskId, 'DEBUG'); |
|
| 198 | 198 | return; |
| 199 | 199 | } |
| 200 | 200 | |
@@ -204,7 +204,7 @@ discard block |
||
| 204 | 204 | // Get the subtask data |
| 205 | 205 | $subtaskData = json_decode($subtask['task'], true); |
| 206 | 206 | |
| 207 | - if (LOG_TASKS=== true) $this->logger->log('Processing subtask: ' . $subtaskData['step'], 'DEBUG'); |
|
| 207 | + if (LOG_TASKS === true) $this->logger->log('Processing subtask: '.$subtaskData['step'], 'DEBUG'); |
|
| 208 | 208 | |
| 209 | 209 | // Process the subtask based on its type |
| 210 | 210 | switch ($subtaskData['step'] ?? '') { |
@@ -248,13 +248,13 @@ discard block |
||
| 248 | 248 | $subtask['increment_id'] |
| 249 | 249 | ); |
| 250 | 250 | |
| 251 | - $this->logger->log('processSubTasks : ' . $e->getMessage(), 'ERROR'); |
|
| 251 | + $this->logger->log('processSubTasks : '.$e->getMessage(), 'ERROR'); |
|
| 252 | 252 | } |
| 253 | 253 | } |
| 254 | 254 | |
| 255 | 255 | // Are all subtasks completed? |
| 256 | 256 | $remainingSubtasks = DB::queryFirstField( |
| 257 | - 'SELECT COUNT(*) FROM ' . prefixTable('background_subtasks') . ' WHERE task_id = %i AND is_in_progress = 0', |
|
| 257 | + 'SELECT COUNT(*) FROM '.prefixTable('background_subtasks').' WHERE task_id = %i AND is_in_progress = 0', |
|
| 258 | 258 | $this->taskId |
| 259 | 259 | ); |
| 260 | 260 | |
@@ -270,7 +270,7 @@ discard block |
||
| 270 | 270 | error_log("Usage: php background_tasks___worker.php <task_id> <process_type> [<task_data>]"); |
| 271 | 271 | exit(1); |
| 272 | 272 | } |
| 273 | -$taskId = (int)$argv[1]; |
|
| 273 | +$taskId = (int) $argv[1]; |
|
| 274 | 274 | $processType = $argv[2]; |
| 275 | 275 | $taskData = $argv[3] ?? null; |
| 276 | 276 | if ($taskData) { |
@@ -30,7 +30,7 @@ discard block |
||
| 30 | 30 | use TeampassClasses\ConfigManager\ConfigManager; |
| 31 | 31 | |
| 32 | 32 | require_once __DIR__.'/../sources/main.functions.php'; |
| 33 | -require_once __DIR__ . '/taskLogger.php'; |
|
| 33 | +require_once __DIR__.'/taskLogger.php'; |
|
| 34 | 34 | |
| 35 | 35 | class BackgroundTasksHandler { |
| 36 | 36 | private $settings; |
@@ -55,7 +55,7 @@ discard block |
||
| 55 | 55 | public function processBackgroundTasks() { |
| 56 | 56 | // Prevent multiple concurrent executions |
| 57 | 57 | if (!$this->acquireProcessLock()) { |
| 58 | - if (LOG_TASKS=== true) $this->logger->log('Process already running', 'INFO'); |
|
| 58 | + if (LOG_TASKS === true) $this->logger->log('Process already running', 'INFO'); |
|
| 59 | 59 | return false; |
| 60 | 60 | } |
| 61 | 61 | |
@@ -64,7 +64,7 @@ discard block |
||
| 64 | 64 | $this->processTaskBatches(); |
| 65 | 65 | $this->performMaintenanceTasks(); |
| 66 | 66 | } catch (Exception $e) { |
| 67 | - if (LOG_TASKS=== true) $this->logger->log('Task processing error: ' . $e->getMessage(), 'ERROR'); |
|
| 67 | + if (LOG_TASKS === true) $this->logger->log('Task processing error: '.$e->getMessage(), 'ERROR'); |
|
| 68 | 68 | } finally { |
| 69 | 69 | $this->releaseProcessLock(); |
| 70 | 70 | } |
@@ -83,7 +83,7 @@ discard block |
||
| 83 | 83 | return false; |
| 84 | 84 | } |
| 85 | 85 | |
| 86 | - fwrite($fp, (string)getmypid()); |
|
| 86 | + fwrite($fp, (string) getmypid()); |
|
| 87 | 87 | return true; |
| 88 | 88 | } |
| 89 | 89 | |
@@ -101,7 +101,7 @@ discard block |
||
| 101 | 101 | private function cleanupStaleTasks() { |
| 102 | 102 | // Mark tasks as failed if they've been running too long |
| 103 | 103 | DB::query( |
| 104 | - 'UPDATE ' . prefixTable('background_tasks') . ' |
|
| 104 | + 'UPDATE '.prefixTable('background_tasks').' |
|
| 105 | 105 | SET is_in_progress = -1, |
| 106 | 106 | finished_at = %i, |
| 107 | 107 | status = "failed" |
@@ -113,8 +113,8 @@ discard block |
||
| 113 | 113 | |
| 114 | 114 | // Remove very old failed tasks |
| 115 | 115 | DB::query( |
| 116 | - 'DELETE t, st FROM ' . prefixTable('background_tasks') . ' t |
|
| 117 | - INNER JOIN ' . prefixTable('background_subtasks') . ' st ON (t.increment_id = st.task_id) |
|
| 116 | + 'DELETE t, st FROM '.prefixTable('background_tasks').' t |
|
| 117 | + INNER JOIN ' . prefixTable('background_subtasks').' st ON (t.increment_id = st.task_id) |
|
| 118 | 118 | WHERE t.finished_at > %i |
| 119 | 119 | AND t.status = %s', |
| 120 | 120 | time() - $this->maxTimeBeforeRemoval, |
@@ -131,7 +131,7 @@ discard block |
||
| 131 | 131 | |
| 132 | 132 | // Check if the maximum number of parallel tasks is reached |
| 133 | 133 | if ($runningTasks >= $this->maxParallelTasks) { |
| 134 | - if (LOG_TASKS=== true) $this->logger->log('Wait ... '.$runningTasks.' out of '.$this->maxParallelTasks.' are already running ', 'INFO'); |
|
| 134 | + if (LOG_TASKS === true) $this->logger->log('Wait ... '.$runningTasks.' out of '.$this->maxParallelTasks.' are already running ', 'INFO'); |
|
| 135 | 135 | return; |
| 136 | 136 | } |
| 137 | 137 | |
@@ -140,7 +140,7 @@ discard block |
||
| 140 | 140 | // Fetch next batch of tasks |
| 141 | 141 | $tasks = DB::query( |
| 142 | 142 | 'SELECT increment_id, process_type, arguments |
| 143 | - FROM ' . prefixTable('background_tasks') . ' |
|
| 143 | + FROM ' . prefixTable('background_tasks').' |
|
| 144 | 144 | WHERE is_in_progress = 0 |
| 145 | 145 | AND (finished_at IS NULL OR finished_at = "") |
| 146 | 146 | ORDER BY increment_id ASC |
@@ -149,7 +149,7 @@ discard block |
||
| 149 | 149 | ); |
| 150 | 150 | |
| 151 | 151 | foreach ($tasks as $task) { |
| 152 | - if (LOG_TASKS=== true) $this->logger->log('Launching '.$task['increment_id'], 'INFO'); |
|
| 152 | + if (LOG_TASKS === true) $this->logger->log('Launching '.$task['increment_id'], 'INFO'); |
|
| 153 | 153 | $this->processIndividualTask($task); |
| 154 | 154 | } |
| 155 | 155 | } |
@@ -160,7 +160,7 @@ discard block |
||
| 160 | 160 | * @param array $task The task to process. |
| 161 | 161 | */ |
| 162 | 162 | private function processIndividualTask(array $task) { |
| 163 | - if (LOG_TASKS=== true) $this->logger->log('Starting task: ' . print_r($task, true), 'INFO'); |
|
| 163 | + if (LOG_TASKS === true) $this->logger->log('Starting task: '.print_r($task, true), 'INFO'); |
|
| 164 | 164 | |
| 165 | 165 | // Store progress in the database |
| 166 | 166 | DB::update( |
@@ -177,18 +177,18 @@ discard block |
||
| 177 | 177 | // Prepare process |
| 178 | 178 | $process = new Process([ |
| 179 | 179 | PHP_BINARY, |
| 180 | - __DIR__ . '/background_tasks___worker.php', |
|
| 180 | + __DIR__.'/background_tasks___worker.php', |
|
| 181 | 181 | $task['increment_id'], |
| 182 | 182 | $task['process_type'], |
| 183 | 183 | $task['arguments'] |
| 184 | 184 | ]); |
| 185 | 185 | |
| 186 | 186 | // Launch process |
| 187 | - try{ |
|
| 187 | + try { |
|
| 188 | 188 | $process->mustRun(); |
| 189 | 189 | |
| 190 | 190 | } catch (Exception $e) { |
| 191 | - if (LOG_TASKS=== true) $this->logger->log('Error launching task: ' . $e->getMessage(), 'ERROR'); |
|
| 191 | + if (LOG_TASKS === true) $this->logger->log('Error launching task: '.$e->getMessage(), 'ERROR'); |
|
| 192 | 192 | DB::update( |
| 193 | 193 | prefixTable('background_tasks'), |
| 194 | 194 | [ |
@@ -209,7 +209,7 @@ discard block |
||
| 209 | 209 | private function countRunningTasks(): int { |
| 210 | 210 | return DB::queryFirstField( |
| 211 | 211 | 'SELECT COUNT(*) |
| 212 | - FROM ' . prefixTable('background_tasks') . ' |
|
| 212 | + FROM ' . prefixTable('background_tasks').' |
|
| 213 | 213 | WHERE is_in_progress = 1' |
| 214 | 214 | ); |
| 215 | 215 | } |
@@ -230,10 +230,10 @@ discard block |
||
| 230 | 230 | */ |
| 231 | 231 | private function cleanMultipleItemsEdition() { |
| 232 | 232 | DB::query( |
| 233 | - 'DELETE i1 FROM ' . prefixTable('items_edition') . ' i1 |
|
| 233 | + 'DELETE i1 FROM '.prefixTable('items_edition').' i1 |
|
| 234 | 234 | JOIN ( |
| 235 | 235 | SELECT user_id, item_id, MIN(timestamp) AS oldest_timestamp |
| 236 | - FROM ' . prefixTable('items_edition') . ' |
|
| 236 | + FROM ' . prefixTable('items_edition').' |
|
| 237 | 237 | GROUP BY user_id, item_id |
| 238 | 238 | ) i2 ON i1.user_id = i2.user_id AND i1.item_id = i2.item_id |
| 239 | 239 | WHERE i1.timestamp > i2.oldest_timestamp' |
@@ -246,7 +246,7 @@ discard block |
||
| 246 | 246 | */ |
| 247 | 247 | private function handleItemTokensExpiration() { |
| 248 | 248 | DB::query( |
| 249 | - 'DELETE FROM ' . prefixTable('items_edition') . ' |
|
| 249 | + 'DELETE FROM '.prefixTable('items_edition').' |
|
| 250 | 250 | WHERE timestamp < %i', |
| 251 | 251 | time() - ($this->settings['delay_item_edition'] * 60 ?: EDITION_LOCK_PERIOD) |
| 252 | 252 | ); |
@@ -263,7 +263,7 @@ discard block |
||
| 263 | 263 | // 1. Get all finished tasks older than the cutoff timestamp |
| 264 | 264 | // and that are not in progress |
| 265 | 265 | $tasks = DB::query( |
| 266 | - 'SELECT increment_id FROM ' . prefixTable('background_tasks') . ' |
|
| 266 | + 'SELECT increment_id FROM '.prefixTable('background_tasks').' |
|
| 267 | 267 | WHERE status = %s AND is_in_progress = %i AND finished_at < %s', |
| 268 | 268 | 'completed', |
| 269 | 269 | -1, |
@@ -278,19 +278,19 @@ discard block |
||
| 278 | 278 | |
| 279 | 279 | // 2. Delete all subtasks related to these tasks |
| 280 | 280 | DB::query( |
| 281 | - 'DELETE FROM ' . prefixTable('background_subtasks') . ' |
|
| 281 | + 'DELETE FROM '.prefixTable('background_subtasks').' |
|
| 282 | 282 | WHERE task_id IN %ls', |
| 283 | 283 | $taskIds |
| 284 | 284 | ); |
| 285 | 285 | |
| 286 | 286 | // 3. Delete the tasks themselves |
| 287 | 287 | DB::query( |
| 288 | - 'DELETE FROM ' . prefixTable('background_tasks') . ' |
|
| 288 | + 'DELETE FROM '.prefixTable('background_tasks').' |
|
| 289 | 289 | WHERE increment_id IN %ls', |
| 290 | 290 | $taskIds |
| 291 | 291 | ); |
| 292 | 292 | |
| 293 | - if (LOG_TASKS=== true) $this->logger->log('Old finished tasks cleaned: ' . count($taskIds), 'INFO'); |
|
| 293 | + if (LOG_TASKS === true) $this->logger->log('Old finished tasks cleaned: '.count($taskIds), 'INFO'); |
|
| 294 | 294 | } |
| 295 | 295 | } |
| 296 | 296 | |
@@ -304,5 +304,5 @@ discard block |
||
| 304 | 304 | $tasksHandler = new BackgroundTasksHandler($settings); |
| 305 | 305 | $tasksHandler->processBackgroundTasks(); |
| 306 | 306 | } catch (Exception $e) { |
| 307 | - error_log('Teampass Background Tasks Error: ' . $e->getMessage()); |
|
| 307 | + error_log('Teampass Background Tasks Error: '.$e->getMessage()); |
|
| 308 | 308 | } |
| 309 | 309 | \ No newline at end of file |