MiksIr
Это всё конкретные реализации.
Цитата |
Здрасти... с чего бы. |
Очередь - это модель, как тот же стэк, а асинхронность - это процесс, немного разные понятия.
_____________
Gear FrameworkGear Framework на Github
MiksIrОтнюдь, как структура хранения и порядком доступа к хранимым данным - очередь не является каким-то асинхронным процессом. Скорее стоит говорить, что очередь является инструментом при реализации асинхронности.
_____________
Gear FrameworkGear Framework на Github
SoMeOnE
5.02.2014 - 17:05
Цитата (MiksIr @ 5.02.2014 - 09:35) |
Цитата (SoMeOnE @ 5.02.2014 - 13:25) | Где можно прочитать про очереди, как с этим работать? |
Самый простой вариант - пишем скрипт, который раз в несколько секунд читает временную таблицу, смотрит - не появились ли там записи, если появились - что-то делает (постит). Этот скрипт запускаете из командной строки в "бекграунде".
|
Если я кроном запущу скрипт, который будет выполнять данную операцию. Это будет реализацией понятия очередь?
Если нет в чем различия?
MiksIr
Цитата |
Ну типа "соленое не является трактором" |
Абсурд - является синонимом глупости, т.е. абсурдное утверждение по сути является глупым утверждением, а значит не верным. Но моё утверждение таковым не является, оно верно просто потому, что оно верно по определению понятия очереди и понятия асинхронности.
Цитата |
Очередь обрабатывать можно синхронно и асинхронно. |
О чём я собственно и говорю, что очередь сама по себе не имеет свойства синхронности или асинхронности.
Цитата |
Вот curl_multi есть асинхронная обработка, если хотите, то асинхронная обработка методом мультиплексирования. |
Если я вызову curl_multi_exec() скрипт продолжит свою работу не дожидаясь результата работы этой функции? Я как-то могу повесть хэндлер, чтобы отследить возникновение события, когда любой из запросов завершит свою работу? И т.д. и т.п. является ли curl_multi действительно асинхронным?
_____________
Gear FrameworkGear Framework на Github
MiksIr
Цитата |
Постоянным вызовом curl_multi_exec можете отследить результат. |
Т.е. придётся заблокировать процесс, что противоречит асинхронности.
_____________
Gear FrameworkGear Framework на Github
Цитата |
С чего бы? Процесс не блокируется. |
Ну да, зависит от реализации, одна из которых цикл, который заблокирует процесс, а второй асинхронный через declare() и register_tick_function(). К тому же curl_multi_exec() работает для всего пула коннектов.
_____________
Gear FrameworkGear Framework на Github
MiksIrЯ пытаюсь сказать, что это не совсем честная асинхронность, потому что в этой логике я могу намутить так, что до curl_multi_exec()/curl_multi_select() и не дойдёт дело и вообще я должен постоянно проверять чего там изменилось, ну соглашусь, что это можно списать на модель очереди, но всёравно, без колбэков как-то всё криво и не совсем честно. Сужу по Node.JS и очередям сообщений в винде, где для хоть какой-то разблокировки тяжёлых процессов (без многопоточности) приходится тискать processMessage.
_____________
Gear FrameworkGear Framework на Github