Differential D14219 Diff 34352 src/applications/drydock/garbagecollector/DrydockLogGarbageCollector.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/drydock/garbagecollector/DrydockLogGarbageCollector.php
| <?php | <?php | ||||
| final class DrydockLogGarbageCollector | final class DrydockLogGarbageCollector | ||||
| extends PhabricatorGarbageCollector { | extends PhabricatorGarbageCollector { | ||||
| const COLLECTORCONST = 'drydock.logs'; | const COLLECTORCONST = 'drydock.logs'; | ||||
| public function getCollectorName() { | public function getCollectorName() { | ||||
| return pht('Drydock Logs'); | return pht('Drydock Logs'); | ||||
| } | } | ||||
| public function getDefaultRetentionPolicy() { | public function getDefaultRetentionPolicy() { | ||||
| return phutil_units('30 days in seconds'); | return phutil_units('30 days in seconds'); | ||||
| } | } | ||||
| public function collectGarbage() { | protected function collectGarbage() { | ||||
| $log_table = new DrydockLog(); | $log_table = new DrydockLog(); | ||||
| $conn_w = $log_table->establishConnection('w'); | $conn_w = $log_table->establishConnection('w'); | ||||
| $now = PhabricatorTime::getNow(); | |||||
| $ttl = phutil_units('30 days in seconds'); | |||||
| queryfx( | queryfx( | ||||
| $conn_w, | $conn_w, | ||||
| 'DELETE FROM %T WHERE epoch <= %d LIMIT 100', | 'DELETE FROM %T WHERE epoch <= %d LIMIT 100', | ||||
| $log_table->getTableName(), | $log_table->getTableName(), | ||||
| $now - $ttl); | $this->getGarbageEpoch()); | ||||
| return ($conn_w->getAffectedRows() == 100); | return ($conn_w->getAffectedRows() == 100); | ||||
| } | } | ||||
| } | } | ||||