2020-12-15 05:39:44 +13:00
|
|
|
<?php
|
|
|
|
|
|
|
|
global $cli;
|
|
|
|
|
2020-12-15 10:26:37 +13:00
|
|
|
require_once __DIR__.'/../init.php';
|
|
|
|
|
2020-12-23 03:04:09 +13:00
|
|
|
use Appwrite\Event\Event;
|
2020-12-15 05:39:44 +13:00
|
|
|
use Utopia\App;
|
|
|
|
use Utopia\CLI\Console;
|
|
|
|
|
|
|
|
$cli
|
|
|
|
->task('maintenance')
|
|
|
|
->desc('Schedules maintenance tasks and publishes them to resque')
|
|
|
|
->action(function () {
|
2021-01-27 09:49:13 +13:00
|
|
|
Console::title('Maintenance V1');
|
|
|
|
Console::success(APP_NAME.' maintenance process v1 has started');
|
|
|
|
|
|
|
|
function notifyDeleteExecutionLogs(int $interval)
|
|
|
|
{
|
|
|
|
Resque::enqueue(Event::DELETE_QUEUE_NAME, Event::DELETE_CLASS_NAME, [
|
|
|
|
'type' => DELETE_TYPE_EXECUTIONS,
|
|
|
|
'timestamp' => time() - $interval
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
|
|
|
function notifyDeleteAbuseLogs(int $interval)
|
|
|
|
{
|
|
|
|
Resque::enqueue(Event::DELETE_QUEUE_NAME, Event::DELETE_CLASS_NAME, [
|
|
|
|
'type' => DELETE_TYPE_ABUSE,
|
|
|
|
'timestamp' => time() - $interval
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
|
|
|
function notifyDeleteAuditLogs(int $interval)
|
|
|
|
{
|
|
|
|
Resque::enqueue(Event::DELETE_QUEUE_NAME, Event::DELETE_CLASS_NAME, [
|
|
|
|
'type' => DELETE_TYPE_AUDIT,
|
|
|
|
'timestamp' => time() - $interval
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
2020-12-18 23:48:00 +13:00
|
|
|
// # of days in seconds (1 day = 86400s)
|
2021-01-21 06:57:49 +13:00
|
|
|
$interval = (int) App::getEnv('_APP_MAINTENANCE_INTERVAL', '86400');
|
2021-01-21 07:23:48 +13:00
|
|
|
$executionLogsRetention = (int) App::getEnv('_APP_MAINTENANCE_RETENTION_EXECUTION', '1209600');
|
|
|
|
$auditLogRetention = (int) App::getEnv('_APP_MAINTENANCE_RETENTION_AUDIT', '1209600');
|
|
|
|
$abuseLogsRetention = (int) App::getEnv('_APP_MAINTENANCE_RETENTION_ABUSE', '86400');
|
2020-12-15 10:26:37 +13:00
|
|
|
|
2021-01-21 06:57:49 +13:00
|
|
|
Console::loop(function() use ($interval, $executionLogsRetention, $abuseLogsRetention, $auditLogRetention){
|
2021-01-17 19:17:19 +13:00
|
|
|
$time = date('d-m-Y H:i:s', time());
|
2021-01-21 06:57:49 +13:00
|
|
|
Console::info("[{$time}] Notifying deletes workers every {$interval} seconds");
|
2021-01-21 04:28:52 +13:00
|
|
|
notifyDeleteExecutionLogs($executionLogsRetention);
|
2021-01-21 06:57:49 +13:00
|
|
|
notifyDeleteAbuseLogs($abuseLogsRetention);
|
|
|
|
notifyDeleteAuditLogs($auditLogRetention);
|
|
|
|
}, $interval);
|
2020-12-15 05:39:44 +13:00
|
|
|
});
|