выполнять код асинхронно?
Прошу прощения, может я что-то упустил, а где описана работа php асинхронно, без использования сторонних "костылей", "велосипедов" и т.д. А главное чтоб и работало это все на всех типах ОС.
А в чем существенная проблема? https://habr.com/ru/articles/667590/ Описано всё в мануале по языку. Для тех, кто не любит его читать - иногда статьи пишут, с разъяснениями.
На BeOS тоже надо? А она поддерживалась. Не так уж и давно.
нет я про Windows и Linux
Я знаю кейсы, когда реально нужно запускать PHP на Windows. И даже практикую это в продакшне. Но стараюсь никому об этом не говорить - не поймут же. Но позвольте - а что, у кого-то тоже есть такие же извращенные потребности? Можете поделиться - а на кой хер вам это надо?
асинхронность что мне приходилось использовать, это через curl_multi (обёртка на основе Guzzle) или очереди, это все и на Windows прекрасно работает. других вариантов не требовалось, т.к. задач где бы уперлись в базу данных или файлы не было.
Первое - это вообще не асинхронность. Второе - это просто очередь.ъ
запихиваешь похапе в докер и вжух. работает на всех системах, с нюансом что это докер и линукс
Через curl_multi я изначально и сделал, но код выглядит ужасно нелинейно, поэтому и стал смотреть на async-либы. Мой кейс: есть апи, из которого надо считать миллионы страницы, я стартую несколько десятков запросов, и как только любой из них получает ответ, я его обрабатываю, а вместо отработавшего запроса добавляется новый. В общем, видимо, напишу вариант на каждой из либ, там понятно будет. Сравнительных статей на удивление мало, доки только у reactphp более-менее полные.
ну для этого есть файберы. Можно взять любую на вкус обертку которая позволит вам завернуть это все в красивое api. да и вроде асинхронных http клиентов навалом, вам не обязательно прям брать amphp или реакт для этого.
Там еще задача усложняется тем, что после обработки надо в базу пульнуть батч-инсерт. Если всё вручную пилить, то к уродливому curl_multi добавится велосипедный async-бд-пул
а зачем асинк бд пул? Ну мол, батч инсерт в базу милисекунды занимает, если сравнивать со временем скачивания сотен страниц и т.д.
Обсуждают сегодня