/** * Execute specified task * * @param array $task * @return bool */ public function execute($task) { $taskDetails = Zend_Json::decode($task['data']); if (isset($taskDetails['task_name'])) { try { $this->_config->loadEventObservers('workers'); $this->_app->addEventArea('workers'); $this->getReporter()->reportTaskProcessing($task['task_id']); $this->_dispatchEvent($taskDetails['task_name'], $taskDetails['params']); $this->getReporter()->reportTaskCompleted($task['task_id']); } catch (Exception $e) { $this->getReporter()->reportTaskFailed($task['task_id']); $this->_logger->logException($e); } } return true; }