Skip to content

Commit 0ca3033

Browse files
committed
Merge pull request #381 from dakota/better-gc
Only keep the last x amount of requests
2 parents 4374588 + 68a27c6 commit 0ca3033

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/Model/Table/RequestsTable.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
*/
1313
namespace DebugKit\Model\Table;
1414

15+
use Cake\Core\Configure;
1516
use Cake\ORM\Query;
1617
use Cake\ORM\Table;
1718
use DebugKit\Model\Table\LazyTableTrait;
@@ -79,22 +80,23 @@ public function gc()
7980
if (time() % 100 !== 0) {
8081
return;
8182
}
82-
$purge = $this->find()
83+
$noPurge = $this->find()
8384
->select(['id'])
8485
->hydrate(false)
85-
->where(['requested_at <=' => new \DateTime('-2 weeks')])
86+
->order(['requested_at' => 'desc'])
87+
->limit(Configure::read('DebugKit.requestCount') ?: 20)
8688
->extract('id')
8789
->toArray();
8890

8991
$query = $this->Panels->query()
9092
->delete()
91-
->where(['request_id IN' => $purge]);
93+
->where(['request_id NOT IN' => $noPurge]);
9294
$statement = $query->execute();
9395
$statement->closeCursor();
9496

9597
$query = $this->query()
9698
->delete()
97-
->where(['id IN' => $purge]);
99+
->where(['id NOT IN' => $noPurge]);
98100

99101
$statement = $query->execute();
100102
$statement->closeCursor();

0 commit comments

Comments
 (0)