В настоящее время я пытаюсь использовать runaction для выполнения процессов (особенно длинных запросов) без необходимости ждать пользователя. Поэтому я следовал за документацией runactions. И это говорит ниже должно работать. Оператор вставки должен работать, пока действие все еще продолжается.
public function actionLongProcess(){
if(ERunActions::runBackground()){
$sql = <<<EOD
insert into public.test (value) VALUES ('hehe')
EOD;
Yii::app()->db->createCommand($sql)->execute();
}else{
ChromePhp::log('hello');
}
}
К сожалению, это не так, и я не знаю почему, только другая часть выполняется. вроде как невежественный
Это расширение является вспомогательным классом для запуска действий. Это делает действия контроллера повторно используемыми в различных контекстах.
Характеристики
Запускать действия контроллера как фоновые задачи
Настроить задания cron
«Touch» URL-адреса на удаленных / локальных серверах.
Запустите предварительно сконфигурированные пакетные задания или сценарии php
Используйте встроенный Http-клиент для простых запросов GET и POST (начиная с версии 1.1)
Интервальный фильтр для действий контроллера (начиная с версии 1.1)
Требования
Разработано с Yii 1.1.7
При использовании «touchUrlExt» (см. Ниже) необходимо установить расширение ehttpclient
Других решений пока нет …