Page MenuHomestyx hydra

PhabricatorDaemonTaskGarbageCollector.php
No OneTemporary

PhabricatorDaemonTaskGarbageCollector.php

<?php
final class PhabricatorDaemonTaskGarbageCollector
extends PhabricatorGarbageCollector {
const COLLECTORCONST = 'worker.tasks';
public function getCollectorName() {
return pht('Archived Tasks');
}
public function getDefaultRetentionPolicy() {
return phutil_units('14 days in seconds');
}
protected function collectGarbage() {
$table = new PhabricatorWorkerArchiveTask();
$data_table = new PhabricatorWorkerTaskData();
$conn_w = $table->establishConnection('w');
$tasks = id(new PhabricatorWorkerArchiveTaskQuery())
->withDateCreatedBefore($this->getGarbageEpoch())
->setLimit(100)
->execute();
if (!$tasks) {
return false;
}
$data_ids = array_filter(mpull($tasks, 'getDataID'));
$task_ids = mpull($tasks, 'getID');
$table->openTransaction();
if ($data_ids) {
queryfx(
$conn_w,
'DELETE FROM %T WHERE id IN (%Ld)',
$data_table->getTableName(),
$data_ids);
}
queryfx(
$conn_w,
'DELETE FROM %T WHERE id IN (%Ld)',
$table->getTableName(),
$task_ids);
$table->saveTransaction();
return (count($task_ids) == 100);
}
}

File Metadata

Mime Type
text/x-php
Expires
Thu, Feb 6, 1:40 AM (11 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33854
Default Alt Text
PhabricatorDaemonTaskGarbageCollector.php (1 KB)

Event Timeline