Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как продолжить выполнения PHP не дожидаясь MySql
Serg86  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 104
Пользователь №: 42253
На форуме: 11 месяцев, 22 дня
Карма:




Доброго времени суток, возникла проблемка, думаю что не у меня первого, решил спросить у знатоков.
Как в PHP можно выполнить MySql запрос update и продолжить выполнение сценария не дожидаясь ответа от мускула. Насколько понял для insert есть delay, для update нет.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2703
Пользователь №: 24406
На форуме: 6 лет, 1 месяц, 20 дней
Карма: 170




Отдать выполнение другому worker-у. Запуская через cron или отдавая на разруливание какому-нибуть RabbitMQ.


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 23 дня
Карма: 13




Serg86, организуй систему событий, очередь которой будет выполняться CRONом.
Во время выполнения скрипта регистрируешь задание в событие и продолжаешь его выполнение дальше.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Serg86, в чём смысл апдейта? покажите запрос


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22693
Пользователь №: 20039
На форуме: 7 лет
Карма: 599




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


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
stump  
   Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1067
Пользователь №: 40808
На форуме: 1 год, 10 месяцев, 15 дней
Карма: 14




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

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


--------------------
Трус не играет в хокей
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 23 дня
Карма: 13




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

Верно именно он, вот только поток будет не тот же, что позволит быстрее получить ответ при выполнении основного запроса.
Я например использую очереди при отсылке почты, зачем запросу ждать, пока отработает mail() ?
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




что сказать чего боюсь?
а сновиденья тянутся...
да вот того что вот я проснусь...

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


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14974
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 1 день
Карма: 443




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

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


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

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

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

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 104
Пользователь №: 42253
На форуме: 11 месяцев, 22 дня
Карма:




Цитата

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


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

Это сообщение отредактировал Serg86 - 20.02.2016 - 22:14
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 23 дня
Карма: 13




Serg86, указанные вами запросы в контексте PHP не считаются тяжелыми, и выносить их отдельно это глупо, т.к. накладных расходов получиться больше, нежели пользы. Ну кроме собственного осознания, что у тебя так круто все реализовано.

П.С. Асинхронные запросы это JS , сокеты ............
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14974
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 1 день
Карма: 443




Цитата (Serg86 @ 20.02.2016 - 22:14)
Читал про асинхронные запросы....

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


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

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

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

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Santehnick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 231
Пользователь №: 26735
На форуме: 5 лет, 8 месяцев, 29 дней
Карма: 15




Цитата (sergeiss @ 20.02.2016 - 18:38)
Цитата (Serg86 @ 20.02.2016 - 22:14)
Читал про асинхронные запросы....

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

Он имеет ввиду, что читал о подходе где поток не блокируется операциями ввода/вывода. Что дает этому потоку возможность быстро обрабатывать все приходящие к нему запросы от разных клиентов.

Но для классического php через веб-сервер это лишено смысла, потому что каждый запрос обрабатывается отдельным потоком.

Речь не об аяксе кароче )
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Placido  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Наблюдаю
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1241
Пользователь №: 29445
На форуме: 5 лет, 3 месяца, 4 дня
Карма: 143




Можно костылём: запрос сделать в отдельном файле, файл выполнить через exec(), в конце команды дописать ' > /dev/null 2 > /dev/null &'
http://stackoverflow.com/a/222445/1076419 (см. первый коммент)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса