From c2ce2730654df51cce142fda371bac0e8d261301 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Thu, 30 Jan 2025 04:10:35 +0000 Subject: [PATCH] update stats resources task to use new queue --- .../Platform/Tasks/StatsResources.php | 31 +++++++------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/src/Appwrite/Platform/Tasks/StatsResources.php b/src/Appwrite/Platform/Tasks/StatsResources.php index 5f077bbe9f..3445a009ec 100644 --- a/src/Appwrite/Platform/Tasks/StatsResources.php +++ b/src/Appwrite/Platform/Tasks/StatsResources.php @@ -2,7 +2,7 @@ namespace Appwrite\Platform\Tasks; -use Appwrite\Event\Usage; +use Appwrite\Event\StatsResources as EventStatsResources; use Appwrite\Platform\Action; use Utopia\CLI\Console; use Utopia\Database\Database; @@ -11,8 +11,6 @@ use Utopia\Database\Query; use Utopia\Database\Validator\Authorization; use Utopia\System\System; -const INFINITY_PERIOD = '_inf_'; - /** * Usage count * @@ -35,13 +33,6 @@ class StatsResources extends Action */ protected Database $dbForPlatform; - /** - * Queue for usage - * - * @var Usage - */ - protected Usage $queue; - public static function getName() { return 'stats-resources'; @@ -53,23 +44,22 @@ class StatsResources extends Action ->desc('Schedules projects for usage count') ->inject('dbForPlatform') ->inject('logError') - ->inject('queueForUsage') - ->callback(fn ($dbForPlatform, $logError, $queueForUsage) => $this->action($dbForPlatform, $logError, $queueForUsage)); + ->inject('queueForStatsResources') + ->callback([$this, 'action']); } - public function action(Database $dbForPlatform, callable $logError, Usage $queueForUsage): void + public function action(Database $dbForPlatform, callable $logError, EventStatsResources $queueForStatsResources): void { $this->logError = $logError; $this->dbForPlatform = $dbForPlatform; - $this->queue = $queueForUsage; Console::title("Usage count V1"); Console::success('Usage count: Started'); $interval = (int) System::getEnv('_APP_USAGE_COUNT_INTERVAL', '3600'); - Console::loop(function () use ($queueForUsage) { - $this->enqueueProjects($queueForUsage); + Console::loop(function () use ($queueForStatsResources) { + $this->enqueueProjects($queueForStatsResources); }, $interval); Console::log("Usage count: Exited"); @@ -78,22 +68,23 @@ class StatsResources extends Action /** * Enqueue projects for counting * @param Database $dbForPlatform - * @param Usage $queue + * @param EventStatsResources $queue * @return void */ - protected function enqueueProjects(Usage $queue): void + protected function enqueueProjects(EventStatsResources $queue): void { Authorization::disable(); Authorization::setDefaultStatus(false); $last24Hours = (new \DateTime())->sub(\DateInterval::createFromDateString('24 hours')); - // Foreach Team + /** + * 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) - ->setType(Usage::TYPE_USAGE_COUNT) ->trigger(); Console::success('project: ' . $project->getId() . '(' . $project->getInternalId() . ')' . ' queued'); });