mirror of
https://github.com/appwrite/appwrite
synced 2026-05-24 09:28:40 +00:00
refactor
This commit is contained in:
parent
6b930129e5
commit
99f23ff25a
1 changed files with 17 additions and 28 deletions
|
|
@ -48,7 +48,7 @@ class StatsResources extends Action
|
||||||
->callback([$this, 'action']);
|
->callback([$this, 'action']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function action(Database $dbForPlatform, callable $logError, EventStatsResources $queueForStatsResources): void
|
public function action(Database $dbForPlatform, callable $logError, EventStatsResources $queue): void
|
||||||
{
|
{
|
||||||
$this->logError = $logError;
|
$this->logError = $logError;
|
||||||
$this->dbForPlatform = $dbForPlatform;
|
$this->dbForPlatform = $dbForPlatform;
|
||||||
|
|
@ -58,35 +58,24 @@ class StatsResources extends Action
|
||||||
Console::success('Stats resources: started');
|
Console::success('Stats resources: started');
|
||||||
|
|
||||||
$interval = (int) System::getEnv('_APP_STATS_RESOURCES_INTERVAL', '3600');
|
$interval = (int) System::getEnv('_APP_STATS_RESOURCES_INTERVAL', '3600');
|
||||||
Console::loop(function () use ($queueForStatsResources) {
|
Console::loop(function () use ($queue) {
|
||||||
$this->enqueueProjects($queueForStatsResources);
|
Authorization::disable();
|
||||||
|
Authorization::setDefaultStatus(false);
|
||||||
|
|
||||||
|
$last24Hours = (new \DateTime())->sub(\DateInterval::createFromDateString('24 hours'));
|
||||||
|
/**
|
||||||
|
* For each project that were accessed in last 24 hours
|
||||||
|
*/
|
||||||
|
$this->foreachDocument($this->dbForPlatform, 'projects', [
|
||||||
|
Query::greaterThanEqual('accessedAt', DateTime::format($last24Hours))
|
||||||
|
], function ($project) use ($queue) {
|
||||||
|
$queue
|
||||||
|
->setProject($project)
|
||||||
|
->trigger();
|
||||||
|
Console::success('project: ' . $project->getId() . '(' . $project->getInternalId() . ')' . ' queued');
|
||||||
|
});
|
||||||
}, $interval);
|
}, $interval);
|
||||||
|
|
||||||
Console::log("Stats resources: exited");
|
Console::log("Stats resources: exited");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Enqueue projects for counting
|
|
||||||
* @param Database $dbForPlatform
|
|
||||||
* @param EventStatsResources $queue
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
protected function enqueueProjects(EventStatsResources $queue): void
|
|
||||||
{
|
|
||||||
Authorization::disable();
|
|
||||||
Authorization::setDefaultStatus(false);
|
|
||||||
|
|
||||||
$last24Hours = (new \DateTime())->sub(\DateInterval::createFromDateString('24 hours'));
|
|
||||||
/**
|
|
||||||
* For each project that were accessed in last 24 hours
|
|
||||||
*/
|
|
||||||
$this->foreachDocument($this->dbForPlatform, 'projects', [
|
|
||||||
Query::greaterThanEqual('accessedAt', DateTime::format($last24Hours))
|
|
||||||
], function ($project) use ($queue) {
|
|
||||||
$queue
|
|
||||||
->setProject($project)
|
|
||||||
->trigger();
|
|
||||||
Console::success('project: ' . $project->getId() . '(' . $project->getInternalId() . ')' . ' queued');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue