У нас Мастер есть по Тильде! @aharito , коли не ошибаюсь. Придёт утром и разнесёт чат по этому вопросу. (:
Плохая шутка=)
Ну ты меня прям оскорбил 😁 Какой я мастер по Тильде 😁 Я мастер по Архитектуре Hi-Load приложений, а не по Тильде 😁
Мне вот никто на вопрос не ответил, возможно ты (вы) ответь дашь (дадите) https://t.me/evo_cms/149045
Доброго и Вам. Может не всё понял из сообщения, да похоже нужно использовать какой-то менеджер очереди, например RabbitMQ. Добавить или взять с него данные можно разными языками, обертками.
О! посмотрю, спасибо.
Там как бы вот что: - асинхронные неблокирующие HTTP-запросы - эти запросы грузят данные - данные надо писать в какой-то "буфер" или "стек", что ли - оттуда другой компонент системы будет эти данные забирать, освобождая этот "буфер" Я пока не слишком четко представляю себе и структуру такого приложения (компонента), и как вообще такая задача решается, и какие есть готовые штуки. Знаю, что для асинхронных запросов есть Guzzle, для более широкой асинхронности / параллельности есть Swoole и подобное (но мне параллельность-то не нужна, нужны только асинхронные запросы через php). Также понимаю, что раз в задаче есть ограничение на кол-во одновременных потоков (асинхронных запросов), то значит будут очереди. Вот всё, что я пока понимаю, и из этого сейчас стараюсь выстроить какую-то схему будущего компонента (опыта в таком нет, но интересно).
Раз будут очереди, то из готового можно использовать rabbltmq или kafka - почитать нужно про разницу обмена сообщениями и выбрать подходящий. Не сильно ясно про асинхронные запросы. В очередь просто добавляются данные и дальше обработка идёт. Насколько помню в php асинхронные запросы делают через обёртки типа приведенных выше Вами. По сути сокет открытый и получение состояния. Просто взять свежий с нужной обработкой состояния и пробовать.
Спасибо, почитаю про раббит и кафка. Сами запросы вроде не проблема, Гуззле прекрасно документирован и очень много примеров. Запрос-промис, как в яваскрипте.
Не сильно ясно про асинхронные запросы. Да, это говорит о том, что пока нет чёткого понимания самой задачи. Как раз этого понимания я и пытаюсь добиться на данном этапе с разных сторон, и через обдумывание, и через анализ готовых решений в php.
Можно сделать по-крестьянски, отдельно таблицу и ходить в нее скриптом, который запускается по крону. Без этого всего.
Кафка не нужна, amqp достаточно будет
Не, так не пойдет. Просто я неполно описываю задачу, писать много. Сейчас напишу чуть полнее. Представь какой-то сервис. Сидят за компами люди, и запросы инициируются рандомно, этими людьми (с помощью соответствующего компонента веб-приложухи). Эти запросы от юзеров идут в определённое АПИ. И данные из этого АПИ, определенным образом обработанные, нужно вернуть обратно каждому юзеру в ответ на его запрос. Их (запросы) конечно можно делать обычным путём, но тогда все остальные будут ждать, пока этот запрос выполнится. Поэтому их надо делать асинхронно. Но нужно и также ограничивать кол-во одновременных потоков.
Ну вот вариант с раббитом подходит. Челы в пул запросов накидали. Ждут. Робот из пула запросы обрабатывает и он молодец.
Обсуждают сегодня