Serg86
20.02.2016 - 16:28
Доброго времени суток, возникла проблемка, думаю что не у меня первого, решил спросить у знатоков.
Как в PHP можно выполнить MySql запрос update и продолжить выполнение сценария не дожидаясь ответа от мускула. Насколько понял для insert есть delay, для update нет.
T1grOK
20.02.2016 - 16:38
Отдать выполнение другому worker-у. Запуская через cron или отдавая на разруливание какому-нибуть RabbitMQ.
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
icedfox
20.02.2016 - 17:37
Serg86, организуй систему событий, очередь которой будет выполняться CRONом.
Во время выполнения скрипта регистрируешь задание в событие и продолжаешь его выполнение дальше.
Valick
20.02.2016 - 17:47
Serg86, в чём смысл апдейта? покажите запрос
_____________
Стимулятор ~yoomoney - 41001303250491
inpost
20.02.2016 - 18:05
Serg86У меня даже идей нет для чего такое может понадобиться. Обычно надежность говорит о том, что процесс был выполнен успешно. Если ты не контроллируешь отказы системы, то в итоге получишь балаган (разве что отдельный скрипт будет делать апдейт по крону и иметь свой перехват ошибок).
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Цитата (Serg86 @ 20.02.2016 - 16:28) |
выполнить MySql запрос update и продолжить выполнение сценария не дожидаясь ответа от мускула. |
Направить запрос к postgreSql! Не представляю вообще как это. Ну передали очереди. А кто будет выгребать из очереди? PHP? Все равно кто-то будет ждать ответа сервера. ... это сколько же данных что ждать проблема ?!
_____________
Трус не играет в хокей
icedfox
20.02.2016 - 18:23
Цитата (stump @ 20.02.2016 - 20:18) |
Ну передали очереди. А кто будет выгребать из очереди? PHP? |
Верно именно он, вот только поток будет не тот же, что позволит быстрее получить ответ при выполнении основного запроса.
Я например использую очереди при отсылке почты, зачем запросу ждать, пока отработает mail() ?
Valick
20.02.2016 - 19:12
что сказать чего боюсь?
а сновиденья тянутся...
да вот того что вот я проснусь...а запросы в цикле
_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
20.02.2016 - 21:53
Цитата (Serg86 @ 20.02.2016 - 16:28) |
Как в PHP можно выполнить MySql запрос update и продолжить выполнение сценария не дожидаясь ответа от мускула. |
Объясни цель этого действия. Может быть и будет какое-то решение. На данный момент выглядит как ненужная "хотелка", поэтому и такая реакция у всех.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Serg86
20.02.2016 - 22:14
Цитата |
Объясни цель этого действия. Может быть и будет какое-то решение. На данный момент выглядит как ненужная "хотелка", поэтому и такая реакция у всех. |
Да просто всё, к примеру есть запросы типа обновления счетчика или изменения статуса при тех или иных условиях, не затрагивающие последующее выполнение сценария, к примеру увеличить счетчик просмотров конкретной записи на 1. Зачем ждать выполнения запроса, если можно продолжить сценарий не дожидаясь ответа. Читал про асинхронные запросы, но пока до конца не разобрался для всех ли запросов они подойдут.
icedfox
20.02.2016 - 22:22
Serg86, указанные вами запросы в контексте PHP не считаются тяжелыми, и выносить их отдельно это глупо, т.к. накладных расходов получиться больше, нежели пользы. Ну кроме собственного осознания, что у тебя так круто все реализовано.
П.С. Асинхронные запросы это JS , сокеты ............
sergeiss
20.02.2016 - 22:38
Цитата (Serg86 @ 20.02.2016 - 22:14) |
Читал про асинхронные запросы.... |
А сейчас как делаешь - перезагружаешь всю страницу, что ли???
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Placido
22.02.2016 - 23:40
Можно костылём: запрос сделать в отдельном файле, файл выполнить через exec(), в конце команды дописать ' > /dev/null 2 > /dev/null &'
http://stackoverflow.com/a/222445/1076419 (см. первый коммент)
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.