Application\Admin\Controllers\TaskController::killAction PHP Method

killAction() public method

public killAction ( )
    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');
    }