Skip to content

Commit 2b788c8

Browse files
authored
Merge pull request #39 from Oefenweb/make-gc-more-efficient
Make gc more efficient
2 parents b590f17 + 2f0658f commit 2b788c8

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

Model/QueuedTask.php

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public function markJobFailed($id, $failureMessage = null) {
169169
* @param string $taskName A task name to count
170170
* @return int The number of pending jobs
171171
*/
172-
public function getLength($taskName = null) {
172+
public function getLength($taskName = null) : int {
173173
$conditions = ['completed' => null];
174174
if (!empty($taskName)) {
175175
$conditions['task'] = $taskName;
@@ -183,7 +183,7 @@ public function getLength($taskName = null) {
183183
*
184184
* @return array A list of task names
185185
*/
186-
public function getTypes() {
186+
public function getTypes() : array {
187187
$fields = ['task', 'task'];
188188
$group = ['task'];
189189

@@ -195,7 +195,7 @@ public function getTypes() {
195195
*
196196
* @return array An array with statistics
197197
*/
198-
public function getStats() {
198+
public function getStats() : array {
199199
$fields = [
200200
'task',
201201
'COUNT(id) AS num',
@@ -215,19 +215,21 @@ public function getStats() {
215215
* @param array $capabilities Available queue worker tasks.
216216
* @return bool Success
217217
*/
218-
public function cleanOldJobs($capabilities) {
219-
$conditions = [];
220-
221-
// Generate the job specific conditions
218+
public function cleanOldJobs(array $capabilities) : bool {
219+
$success = true;
222220
foreach ($capabilities as $task) {
223-
list($plugin, $name) = pluginSplit($task['name']);
224-
$conditions['OR'][] = [
221+
list(, $name) = pluginSplit($task['name']);
222+
$conditions = [
225223
'task' => $name,
226224
'completed <' => date('Y-m-d H:i:s', time() - $task['cleanupTimeout'])
227225
];
226+
if (!$this->deleteAll($conditions, false)) {
227+
$success = false;
228+
break;
229+
}
228230
}
229231

230-
return $this->deleteAll($conditions, false);
232+
return $success;
231233
}
232234

233235
/**
@@ -236,19 +238,21 @@ public function cleanOldJobs($capabilities) {
236238
* @param array $capabilities Available queue worker tasks.
237239
* @return bool Success
238240
*/
239-
public function cleanFailedJobs($capabilities) {
240-
$conditions = [];
241-
242-
// Generate the job specific conditions.
241+
public function cleanFailedJobs(array $capabilities) : bool {
242+
$success = true;
243243
foreach ($capabilities as $task) {
244-
list($plugin, $name) = pluginSplit($task['name']);
245-
$conditions['OR'][] = [
244+
list(, $name) = pluginSplit($task['name']);
245+
$conditions = [
246246
'task' => $name,
247247
'failed_count >' => $task['retries']
248248
];
249+
if (!$this->deleteAll($conditions, false)) {
250+
$success = false;
251+
break;
252+
}
249253
}
250254

251-
return $this->deleteAll($conditions, false);
255+
return $success;
252256
}
253257

254258
/**

0 commit comments

Comments
 (0)