public function killAction()
{
$taskId = $this->request->get('task', 'ignore');
if (isset($this->_tasks[$taskId])) {
$taskName = $this->_tasks[$taskId];
if ($this->tasksMetadata->exists($taskName, Metadata::FIELD_STATUS)) {
$this->tasksMetadata->set($taskName, Metadata::FIELD_CANCEL_FLAG, 1);
for ($i = 0; $i < 2; $i++) {
sleep(1);
/** @noinspection TypeUnsafeComparisonInspection */
if ($this->tasksMetadata->get($taskName, Metadata::FIELD_STATUS) == Task::STATUS_STOP) {
break;
}
}
}
$this->tasksMetadata->reset($taskName);
}
return $this->response->redirect('/admin/task');
}