From ba2a49e9875eda489385e370bb9f2259779caa7b Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 2 Dec 2014 19:22:48 +0100 Subject: Tweaks and fixes --- apis/taskmanager.inc.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'apis') diff --git a/apis/taskmanager.inc.php b/apis/taskmanager.inc.php index 8365aac7..102352d2 100644 --- a/apis/taskmanager.inc.php +++ b/apis/taskmanager.inc.php @@ -7,15 +7,27 @@ if (!is_array($_POST['ids'])) { die('{"error" : "No Task ids given in POST data."}'); } +$callbacks = false; + $return = array(); foreach ($_POST['ids'] as $id) { + // Get task status $status = Taskmanager::status($id); if ($status === false) { $return[] = array('id' => $id, 'error' => 'No connection to TaskManager'); continue; } $return[] = $status; - if (!isset($status['statusCode']) || ($status['statusCode'] !== TASK_WAITING && $status['statusCode'] !== TASK_PROCESSING)) { + // Handle callbacks (if any) + if ($callbacks === false) + $callbacks = TaskmanagerCallback::getPendingCallbacks(); + if (isset($callbacks[$id])) { + foreach ($callbacks[$id] as $callback) { + TaskmanagerCallback::handleCallback($callback, $status); + } + } + // Release task if done + if (Taskmanager::isFailed($status) || Taskmanager::isFinished($status)) { Taskmanager::release($id); } } -- cgit v1.2.3-55-g7522