diff options
author | Simon Rettberg | 2014-12-02 19:22:48 +0100 |
---|---|---|
committer | Simon Rettberg | 2014-12-02 19:22:48 +0100 |
commit | ba2a49e9875eda489385e370bb9f2259779caa7b (patch) | |
tree | 2654d7b4a6bf99d584e146f7708c75a5b8beaeac /apis | |
parent | Fix wrong event type when displaying event log (diff) | |
download | slx-admin-ba2a49e9875eda489385e370bb9f2259779caa7b.tar.gz slx-admin-ba2a49e9875eda489385e370bb9f2259779caa7b.tar.xz slx-admin-ba2a49e9875eda489385e370bb9f2259779caa7b.zip |
Tweaks and fixes
Diffstat (limited to 'apis')
-rw-r--r-- | apis/taskmanager.inc.php | 14 |
1 files changed, 13 insertions, 1 deletions
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); } } |