public static function runTask($task)
{
$run = $task->createTaskRun();
$run->setTaskId($task->getTaskId());
$run->setTs(date('Y-m-d H:i:s'));
$run->setStatus(TaskRunInterface::RUN_STATUS_STARTED);
$run->saveTaskRun();
$run_final_status = TaskRunInterface::RUN_STATUS_COMPLETED;
ob_start();
$time_begin = microtime(true);
$result = self::parseAndRunCommand($task->getCommand());
if (!$result) {
$run_final_status = TaskRunInterface::RUN_STATUS_ERROR;
}
$output = ob_get_clean();
$run->setOutput($output);
$time_end = microtime(true);
$time = round($time_end - $time_begin, 2);
$run->setExecutionTime($time);
$run->setStatus($run_final_status);
$run->saveTaskRun();
return $output;
}