public function execute() { global $wgDevelEnvironment, $wgFlowerUrl; if ($wgDevelEnvironment) { \Wikia\Logger\WikiaLogger::instance()->setDevModeWithES(); } \Wikia\Logger\WikiaLogger::instance()->pushContext(['task_id' => $this->mOptions['task_id']]); $runner = new TaskRunner($this->mOptions['wiki_id'], $this->mOptions['task_id'], $this->mOptions['task_list'], $this->mOptions['call_order'], $this->mOptions['created_by']); ob_start(); $runner->run(); $result = $runner->format(); if ($runner->runTime() > TaskRunner::TASK_NOTIFY_TIMEOUT) { Http::post("{$wgFlowerUrl}/api/task/status/{$this->mOptions['task_id']}", ['noProxy' => true, 'postData' => json_encode(['kwargs' => ['completed' => time(), 'state' => $result->status, 'result' => $result->status == 'success' ? $result->retval : $result->reason]])]); } ob_end_clean(); echo json_encode($result); }