[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как продолжить выполнения PHP не дожидаясь MySql
Serg86
Доброго времени суток, возникла проблемка, думаю что не у меня первого, решил спросить у знатоков.
Как в PHP можно выполнить MySql запрос update и продолжить выполнение сценария не дожидаясь ответа от мускула. Насколько понял для insert есть delay, для update нет.
T1grOK
Отдать выполнение другому worker-у. Запуская через cron или отдавая на разруливание какому-нибуть RabbitMQ.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
icedfox
Serg86, организуй систему событий, очередь которой будет выполняться CRONом.
Во время выполнения скрипта регистрируешь задание в событие и продолжаешь его выполнение дальше.
Valick
Serg86, в чём смысл апдейта? покажите запрос


_____________
Стимулятор ~yoomoney - 41001303250491
inpost
Serg86
У меня даже идей нет для чего такое может понадобиться. Обычно надежность говорит о том, что процесс был выполнен успешно. Если ты не контроллируешь отказы системы, то в итоге получишь балаган (разве что отдельный скрипт будет делать апдейт по крону и иметь свой перехват ошибок).

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
stump
Цитата (Serg86 @ 20.02.2016 - 16:28)
выполнить MySql запрос update и продолжить выполнение сценария не дожидаясь ответа от мускула.

Направить запрос к postgreSql! Не представляю вообще как это. Ну передали очереди. А кто будет выгребать из очереди? PHP? Все равно кто-то будет ждать ответа сервера. ... это сколько же данных что ждать проблема ?!

_____________
Трус не играет в хокей
icedfox
Цитата (stump @ 20.02.2016 - 20:18)
Ну передали очереди. А кто будет выгребать из очереди? PHP?

Верно именно он, вот только поток будет не тот же, что позволит быстрее получить ответ при выполнении основного запроса.
Я например использую очереди при отсылке почты, зачем запросу ждать, пока отработает mail() ?
Valick
что сказать чего боюсь?
а сновиденья тянутся...
да вот того что вот я проснусь...

а запросы в цикле

_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
Цитата (Serg86 @ 20.02.2016 - 16:28)
Как в PHP можно выполнить MySql запрос update и продолжить выполнение сценария не дожидаясь ответа от мускула.

Объясни цель этого действия. Может быть и будет какое-то решение. На данный момент выглядит как ненужная "хотелка", поэтому и такая реакция у всех.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Serg86
Цитата

Объясни цель этого действия. Может быть и будет какое-то решение. На данный момент выглядит как ненужная "хотелка", поэтому и такая реакция у всех.


Да просто всё, к примеру есть запросы типа обновления счетчика или изменения статуса при тех или иных условиях, не затрагивающие последующее выполнение сценария, к примеру увеличить счетчик просмотров конкретной записи на 1. Зачем ждать выполнения запроса, если можно продолжить сценарий не дожидаясь ответа. Читал про асинхронные запросы, но пока до конца не разобрался для всех ли запросов они подойдут.
icedfox
Serg86, указанные вами запросы в контексте PHP не считаются тяжелыми, и выносить их отдельно это глупо, т.к. накладных расходов получиться больше, нежели пользы. Ну кроме собственного осознания, что у тебя так круто все реализовано.

П.С. Асинхронные запросы это JS , сокеты ............
sergeiss
Цитата (Serg86 @ 20.02.2016 - 22:14)
Читал про асинхронные запросы....

А сейчас как делаешь - перезагружаешь всю страницу, что ли???

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Placido
Можно костылём: запрос сделать в отдельном файле, файл выполнить через exec(), в конце команды дописать ' > /dev/null 2 > /dev/null &'
http://stackoverflow.com/a/222445/1076419 (см. первый коммент)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.