getUsers()->getSessions()->purgeExpiredSessions(); // Resynchronise use counts Upload::resync(EFFECT_UPLOADS); // Destroy orphaned uploads $ctx->getUploads()->purgeOrphans(); // Get task queue $zones = $ctx->getZones(); $tasks = $zones->getTasks(); $taskQueue = $tasks->queuedTasks(); // Plow through tasks // TODO: make task functions modular foreach($taskQueue as $task) { if(!isset($zoneInfo) || $zoneInfo->getIdStr() !== $task->getZoneId()) $zoneInfo = Zone::byId($task->getZoneId()); switch($task->getName()) { case 'screenshot': $zones->takeScreenshot($zoneInfo); break; } $tasks->deleteTask($task); } } } finally { sem_release($semaphore); }