169 похожих чатов

Где в синтаксисе PHP вы нашли что-то, что мешает вам

выполнять код асинхронно?

12 ответов

45 просмотров

Прошу прощения, может я что-то упустил, а где описана работа php асинхронно, без использования сторонних "костылей", "велосипедов" и т.д. А главное чтоб и работало это все на всех типах ОС.

Альберт-Степанцев Автор вопроса
Egor Gruzdev
Прошу прощения, может я что-то упустил, а где опис...

А в чем существенная проблема? https://habr.com/ru/articles/667590/ Описано всё в мануале по языку. Для тех, кто не любит его читать - иногда статьи пишут, с разъяснениями.

Альберт-Степанцев Автор вопроса
Egor Gruzdev
Прошу прощения, может я что-то упустил, а где опис...

На BeOS тоже надо? А она поддерживалась. Не так уж и давно.

Альберт-Степанцев Автор вопроса

Я знаю кейсы, когда реально нужно запускать PHP на Windows. И даже практикую это в продакшне. Но стараюсь никому об этом не говорить - не поймут же. Но позвольте - а что, у кого-то тоже есть такие же извращенные потребности? Можете поделиться - а на кой хер вам это надо?

Альберт Степанцев
Я знаю кейсы, когда реально нужно запускать PHP на...

асинхронность что мне приходилось использовать, это через curl_multi (обёртка на основе Guzzle) или очереди, это все и на Windows прекрасно работает. других вариантов не требовалось, т.к. задач где бы уперлись в базу данных или файлы не было.

Альберт-Степанцев Автор вопроса
Egor Gruzdev
асинхронность что мне приходилось использовать, эт...

Первое - это вообще не асинхронность. Второе - это просто очередь.ъ

Egor Gruzdev
нет я про Windows и Linux

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

Egor Gruzdev
асинхронность что мне приходилось использовать, эт...

Через curl_multi я изначально и сделал, но код выглядит ужасно нелинейно, поэтому и стал смотреть на async-либы. Мой кейс: есть апи, из которого надо считать миллионы страницы, я стартую несколько десятков запросов, и как только любой из них получает ответ, я его обрабатываю, а вместо отработавшего запроса добавляется новый. В общем, видимо, напишу вариант на каждой из либ, там понятно будет. Сравнительных статей на удивление мало, доки только у reactphp более-менее полные.

Misha Kulakovsky
Через curl_multi я изначально и сделал, но код выг...

ну для этого есть файберы. Можно взять любую на вкус обертку которая позволит вам завернуть это все в красивое api. да и вроде асинхронных http клиентов навалом, вам не обязательно прям брать amphp или реакт для этого.

Misha Kulakovsky
Через curl_multi я изначально и сделал, но код выг...

Там еще задача усложняется тем, что после обработки надо в базу пульнуть батч-инсерт. Если всё вручную пилить, то к уродливому curl_multi добавится велосипедный async-бд-пул

Misha Kulakovsky
Там еще задача усложняется тем, что после обработк...

а зачем асинк бд пул? Ну мол, батч инсерт в базу милисекунды занимает, если сравнивать со временем скачивания сотен страниц и т.д.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта