diff options
author | Romain LE DISEZ <romain.git@ledisez.net> | 2009-07-16 17:31:20 +0200 |
---|---|---|
committer | Romain LE DISEZ <romain.git@ledisez.net> | 2009-07-16 17:31:20 +0200 |
commit | 7f5030ac208c30a7dc576a57cd9e665022ccbde5 (patch) | |
tree | 6b23e78aa8cc2dd363def46e083217e3c9b52f1b /modules/gallery/helpers/task.php | |
parent | 923732ca4dca6db218f6252a7133cd72f98fa086 (diff) | |
parent | 85b0f580291e375a2c5ec21b8210e59023ee24c2 (diff) |
Merge commit 'upstream/master'
Diffstat (limited to 'modules/gallery/helpers/task.php')
-rw-r--r-- | modules/gallery/helpers/task.php | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/modules/gallery/helpers/task.php b/modules/gallery/helpers/task.php index a8a004ab..6a9f63c2 100644 --- a/modules/gallery/helpers/task.php +++ b/modules/gallery/helpers/task.php @@ -56,6 +56,8 @@ class task_Core { } $task->done = 1; $task->state = "cancelled"; + $task->log(t("Task %task_name cancelled (task id %task_id)", + array("task_name" => $task->name, "task_id" => $task->id))); $task->save(); return $task; @@ -74,9 +76,20 @@ class task_Core { throw new Exception("@todo MISSING_TASK"); } - $task->state = "running"; - call_user_func_array($task->callback, array(&$task)); - $task->save(); + try { + $task->state = "running"; + call_user_func_array($task->callback, array(&$task)); + if ($task->done) { + $task->log($task->status); + } + $task->save(); + } catch (Exception $e) { + $task->log($e->__toString()); + $task->state = "error"; + $task->done = true; + $task->status = $e->getMessage(); + $task->save(); + } return $task; } |