require_once "lib/DB/TaskQueue.php"; require_once "lib/DB/QueuedTask.php"; require_once "lib/Slack.php"; init_database(); if ($unit = GET_int("unit")) { $queue = new TaskQueue($unit); if ($queue->has_active_task()) { Slack::log("requesting new task, while old task is still running!"); $task = $queue->get_active_task(); $task->reportError("Requested new task, while this task was still running."); } if (!$queue->has_queued_tasks()) { if (!RetriggerController::fillQueue($unit)) { die("No tasks to schedule"); } } $task = $queue->get_oldest_available_queued_task(); if (!$task) { echo json_encode(array("task" => "sleep 60", "id" => 0)); die; } $task->setStarted(); echo json_encode(array("task" => $task->task(), "id" => $task->id)); die; } else { if ($task_id = GET_int("finish")) { $task = new QueuedTask($task_id); $task->setFinished(); die; } }