mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 18:48:51 +02:00
Merge branch 'split-file_bulkexport.class.inc.php_BulkExportResultGC.php' into split-file_bulkexport.class.inc.php
This commit is contained in:
38
sources/Application/BulkExport/BulkExportResultGC.php
Normal file
38
sources/Application/BulkExport/BulkExportResultGC.php
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Garbage collector for cleaning "old" export results from the database and the disk.
|
||||||
|
* This background process runs once per day and deletes the results of all exports which
|
||||||
|
* are older than one day.
|
||||||
|
*/
|
||||||
|
class BulkExportResultGC implements iBackgroundProcess
|
||||||
|
{
|
||||||
|
public function GetPeriodicity()
|
||||||
|
{
|
||||||
|
return 24 * 3600; // seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Process($iTimeLimit)
|
||||||
|
{
|
||||||
|
$sDateLimit = date(AttributeDateTime::GetSQLFormat(), time() - 24 * 3600); // Every BulkExportResult older than one day will be deleted
|
||||||
|
|
||||||
|
$sOQL = "SELECT BulkExportResult WHERE created < '$sDateLimit'";
|
||||||
|
$iProcessed = 0;
|
||||||
|
while (time() < $iTimeLimit) {
|
||||||
|
// Next one ?
|
||||||
|
$oSet = new CMDBObjectSet(DBObjectSearch::FromOQL($sOQL), array('created' => true) /* order by*/, array(), null, 1 /* limit count */);
|
||||||
|
$oSet->OptimizeColumnLoad(array('BulkExportResult' => array('temp_file_path')));
|
||||||
|
$oResult = $oSet->Fetch();
|
||||||
|
if (is_null($oResult)) {
|
||||||
|
// Nothing to be done
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$iProcessed++;
|
||||||
|
@unlink($oResult->Get('temp_file_path'));
|
||||||
|
utils::PushArchiveMode(false);
|
||||||
|
$oResult->DBDelete();
|
||||||
|
utils::PopArchiveMode();
|
||||||
|
}
|
||||||
|
return "Cleaned $iProcessed old export results(s).";
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user