Повторяющиеся задачи
This commit is contained in:
@@ -22,6 +22,7 @@ use yii\base\InlineAction;
|
||||
*/
|
||||
class MoleController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Запуск всех агентов для проекта yii из mole_task
|
||||
* @return int Exit code
|
||||
@@ -29,7 +30,7 @@ class MoleController extends Controller
|
||||
public function actionIndex()
|
||||
{
|
||||
$filePatch = Yii::getAlias('@app/runtime/lock.lock');
|
||||
if(!file_exists($filePatch))
|
||||
if (!file_exists($filePatch))
|
||||
{
|
||||
$fp = fopen($filePatch, "w");
|
||||
fwrite($fp, "");
|
||||
@@ -46,25 +47,49 @@ class MoleController extends Controller
|
||||
try
|
||||
{
|
||||
$task->dateStart = date('Y-m-d H:i:s');
|
||||
$task->save();
|
||||
$class = 'app\commands\\' . $task->controller;
|
||||
$task->save();
|
||||
$params = explode('/', $task->controller);
|
||||
$controller = $this->format($params[0]);
|
||||
$action = 'actionIndex';
|
||||
if (isset($params[1]))
|
||||
{
|
||||
$action = 'action' . $this->format($params[1]);
|
||||
}
|
||||
if(stripos($controller, 'Controller') === false)
|
||||
{
|
||||
$controller .= 'Controller';
|
||||
}
|
||||
|
||||
$class = 'app\\commands\\' . $controller;
|
||||
if (class_exists($class))
|
||||
{
|
||||
$control = new $class($task->controller, 'product');
|
||||
$control->actionIndex(unserialize($task->params));
|
||||
if (method_exists($control, $action))
|
||||
{
|
||||
$control->{$action}(unserialize($task->params));
|
||||
$task->isReady = 1;
|
||||
}
|
||||
}
|
||||
$task->dateEnd = date('Y-m-d H:i:s');
|
||||
$task->completed = 1;
|
||||
$task->save();
|
||||
} catch (\yii\elasticsearch\Exception $ex)
|
||||
$task->setCompleted();
|
||||
} catch (\Exception $ex)
|
||||
{
|
||||
$task->dateStart = null;
|
||||
$task->save();
|
||||
print_r($ex);
|
||||
print_r($ex->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
return ExitCode::OK;
|
||||
}
|
||||
|
||||
protected function format($controller)
|
||||
{
|
||||
$params = explode('-', $controller);
|
||||
foreach ($params as $key => $value)
|
||||
{
|
||||
$params[$key] = ucfirst($value);
|
||||
}
|
||||
return implode('', $params);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user