Долгая обработка AjaxForm
Написал сниппет обработку для заявок с сайта которая отправляет данные в crm систему (назвал crmhook):
[[!AjaxForm?
&snippet=`FormIt`
&hooks=`email,crmhook`
В итоге если оставить заявку она идет и на почту и в crm. Но из-за долгой обработки crm форма зависает на несколько секунд пока придет ответ.
Вопрос: можно ли сразу после проверки email отправить пользователю что запрос ушел? и как это сделать?
а crmhook обрабатывался в фоне.
Спасибо заранее.
[[!AjaxForm?
&snippet=`FormIt`
&hooks=`email,crmhook`
В итоге если оставить заявку она идет и на почту и в crm. Но из-за долгой обработки crm форма зависает на несколько секунд пока придет ответ.
Вопрос: можно ли сразу после проверки email отправить пользователю что запрос ушел? и как это сделать?
а crmhook обрабатывался в фоне.
Спасибо заранее.
Комментарии: 12
если сервер использует php-fpm можно попробовать добавить в хук crmhook, в самое начало
if (function_exists('fastcgi_finish_request')) {
return true;
session_write_close();
fastcgi_finish_request();
}
// ниже все без изменений
Не помогло, сайт на beget, видимо сервер без php-fpm
да я тож чет фигню написал, вот так будет верно
if (function_exists('fastcgi_finish_request')) {
echo json_encode(array("success"=>1,"message" => "Сообщение отправлено"));
session_write_close();
fastcgi_finish_request();
}
// ниже все без изменений
Век живи — век учись. Я бы начал с очередями мудрить и запуском обработки по крону)
К сожалению так тоже не сработало( форма также зависает.
message выводится другой не «Сообщение отправлено»
На хостинге поставил галочку «Режим cgi», тоже не работает
message выводится другой не «Сообщение отправлено»
На хостинге поставил галочку «Режим cgi», тоже не работает
Значит не судьба(
Тогда возможно это ваш вариант
Тогда возможно это ваш вариант
Какой вариант? ссылка ведет сюда же, что я попробовал и не получилось.
Илья Уткин Вчера в 14:09 # ↑ 0вот куда ведет ссылка
Век живи — век учись. Я бы начал с очередями мудрить и запуском обработки по крону)
Да, все верно это был совет обратить внимание на комментарий Ильи.
Пишите данные в бд/файл/кудатоеще и затем как вариант все это уже независимо от формы отправляете в crm.
Пишите данные в бд/файл/кудатоеще и затем как вариант все это уже независимо от формы отправляете в crm.
Не верю что все так сложно должно быть, разве нельзя команду которая сообщает об успехе в конце прописать в самом начале? пусть говорит что все ок и выполняет код дальше до конца. Я просто не знаю какая это команда и точную логику работы.
я вообще FormIt не использую, так что незнаю.
Возможно кто то подскажет вам что то еще.
Возможно кто то подскажет вам что то еще.
хорошо, спасибо и на этих подсказках!
А что используете? может оно лучше подойдет мне?
А что используете? может оно лучше подойдет мне?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.