2020-06-10 16:03:13 +00:00
|
|
|
<?php
|
|
|
|
namespace YTKNS;
|
|
|
|
|
|
|
|
if(!defined('YTKNS_SEM_NAME'))
|
|
|
|
define('YTKNS_SEM_NAME', 'b');
|
|
|
|
if(!defined('YTKNS_SFM_PATH'))
|
|
|
|
define('YTKNS_SFM_PATH', sys_get_temp_dir() . DIRECTORY_SEPARATOR . '{04884071-d334-4388-947a-4fd8c4d4f4ea}');
|
|
|
|
|
|
|
|
if(!is_file(YTKNS_SFM_PATH))
|
|
|
|
touch(YTKNS_SFM_PATH);
|
|
|
|
|
|
|
|
$ftok = ftok(YTKNS_SFM_PATH, YTKNS_SEM_NAME);
|
|
|
|
$semaphore = sem_get($ftok, 1);
|
|
|
|
if(!sem_acquire($semaphore))
|
|
|
|
die('Failed to acquire semaphore.' . PHP_EOL);
|
|
|
|
|
2021-07-28 22:10:57 +00:00
|
|
|
try {
|
|
|
|
require_once __DIR__ . '/startup.php';
|
2020-06-10 16:03:13 +00:00
|
|
|
|
2021-07-28 22:10:57 +00:00
|
|
|
// Prevent running cron script during maintenance
|
|
|
|
if(!YTKNS_MAINTENANCE) {
|
|
|
|
// Destroy old sessions
|
2025-02-02 20:07:19 +00:00
|
|
|
$ctx->getUsers()->getSessions()->purgeExpiredSessions();
|
2020-06-10 16:03:13 +00:00
|
|
|
|
2021-07-28 22:10:57 +00:00
|
|
|
// Resynchronise use counts
|
|
|
|
Upload::resync(EFFECT_UPLOADS);
|
2020-06-10 16:03:13 +00:00
|
|
|
|
2021-07-28 22:10:57 +00:00
|
|
|
// Destroy orphaned uploads
|
2025-02-02 20:07:19 +00:00
|
|
|
$ctx->getUploads()->purgeOrphans();
|
2020-06-10 16:03:13 +00:00
|
|
|
|
2021-07-28 22:10:57 +00:00
|
|
|
// Get task queue
|
2025-02-02 20:07:19 +00:00
|
|
|
$zones = $ctx->getZones();
|
|
|
|
$tasks = $zones->getTasks();
|
|
|
|
$taskQueue = $tasks->queuedTasks();
|
2020-06-10 16:03:13 +00:00
|
|
|
|
2021-07-28 22:10:57 +00:00
|
|
|
// Plow through tasks
|
|
|
|
// TODO: make task functions modular
|
2025-02-02 20:07:19 +00:00
|
|
|
foreach($taskQueue as $task) {
|
|
|
|
if(!isset($zoneInfo) || $zoneInfo->getIdStr() !== $task->getZoneId())
|
|
|
|
$zoneInfo = Zone::byId($task->getZoneId());
|
2020-06-10 16:03:13 +00:00
|
|
|
|
2021-07-28 22:10:57 +00:00
|
|
|
switch($task->getName()) {
|
|
|
|
case 'screenshot':
|
2025-02-02 20:07:19 +00:00
|
|
|
$zones->takeScreenshot($zoneInfo);
|
2021-07-28 22:10:57 +00:00
|
|
|
break;
|
|
|
|
}
|
2020-06-10 16:03:13 +00:00
|
|
|
|
2025-02-02 20:07:19 +00:00
|
|
|
$tasks->deleteTask($task);
|
2021-07-28 22:10:57 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
} finally {
|
|
|
|
sem_release($semaphore);
|
2020-06-10 16:03:13 +00:00
|
|
|
}
|