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

14 ответов

43 просмотра

У нас Мастер есть по Тильде! @aharito , коли не ошибаюсь. Придёт утром и разнесёт чат по этому вопросу. (:

Плохая шутка=)

Am Ambrion
У нас Мастер есть по Тильде! @aharito , коли не ош...

Ну ты меня прям оскорбил 😁 Какой я мастер по Тильде 😁 Я мастер по Архитектуре Hi-Load приложений, а не по Тильде 😁

Am Ambrion
У нас Мастер есть по Тильде! @aharito , коли не ош...

Мне вот никто на вопрос не ответил, возможно ты (вы) ответь дашь (дадите) https://t.me/evo_cms/149045

Доброго и Вам. Может не всё понял из сообщения, да похоже нужно использовать какой-то менеджер очереди, например RabbitMQ. Добавить или взять с него данные можно разными языками, обертками.

Am Ambrion
Доброго и Вам. Может не всё понял из сообщения, да...

Там как бы вот что: - асинхронные неблокирующие HTTP-запросы - эти запросы грузят данные - данные надо писать в какой-то "буфер" или "стек", что ли - оттуда другой компонент системы будет эти данные забирать, освобождая этот "буфер" Я пока не слишком четко представляю себе и структуру такого приложения (компонента), и как вообще такая задача решается, и какие есть готовые штуки. Знаю, что для асинхронных запросов есть Guzzle, для более широкой асинхронности / параллельности есть Swoole и подобное (но мне параллельность-то не нужна, нужны только асинхронные запросы через php). Также понимаю, что раз в задаче есть ограничение на кол-во одновременных потоков (асинхронных запросов), то значит будут очереди. Вот всё, что я пока понимаю, и из этого сейчас стараюсь выстроить какую-то схему будущего компонента (опыта в таком нет, но интересно).

Андрей [aharito] Харитонов
Там как бы вот что: - асинхронные неблокирующие H...

Раз будут очереди, то из готового можно использовать rabbltmq или kafka - почитать нужно про разницу обмена сообщениями и выбрать подходящий. Не сильно ясно про асинхронные запросы. В очередь просто добавляются данные и дальше обработка идёт. Насколько помню в php асинхронные запросы делают через обёртки типа приведенных выше Вами. По сути сокет открытый и получение состояния. Просто взять свежий с нужной обработкой состояния и пробовать.

Am Ambrion
Раз будут очереди, то из готового можно использова...

Спасибо, почитаю про раббит и кафка. Сами запросы вроде не проблема, Гуззле прекрасно документирован и очень много примеров. Запрос-промис, как в яваскрипте.

Am Ambrion
Раз будут очереди, то из готового можно использова...

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

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

Oleg Nosov
Можно сделать по-крестьянски, отдельно таблицу и х...

Не, так не пойдет. Просто я неполно описываю задачу, писать много. Сейчас напишу чуть полнее. Представь какой-то сервис. Сидят за компами люди, и запросы инициируются рандомно, этими людьми (с помощью соответствующего компонента веб-приложухи). Эти запросы от юзеров идут в определённое АПИ. И данные из этого АПИ, определенным образом обработанные, нужно вернуть обратно каждому юзеру в ответ на его запрос. Их (запросы) конечно можно делать обычным путём, но тогда все остальные будут ждать, пока этот запрос выполнится. Поэтому их надо делать асинхронно. Но нужно и также ограничивать кол-во одновременных потоков.

Андрей [aharito] Харитонов
Не, так не пойдет. Просто я неполно описываю задач...

Ну вот вариант с раббитом подходит. Челы в пул запросов накидали. Ждут. Робот из пула запросы обрабатывает и он молодец.

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

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

а через 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
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
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта