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

Ребят, может кто сталкивался. Делаю обратные апи (клиент загружает заказы

по апи, манагеры что-то меняет, статусы, что-то ещё, без разницы, долблю обратно по указанным адресам с json, что кто и когда поменял).
Сделано всё на ивентах, ивенты запускают джобы, джобы собирают данные и делают http запросы.
Проблема возникает, когда сервер клиента не отвечает. Сервер может у клиента лечь на пару часов, поэтому мы не ретраем запросы, однако, потом по просьбе клиента это иногда делать надо. Столкнулись с тем, что клиенту нужна хронология, когда, кем, какой статус был проставлен. Т.е. условно есть заказ, который сейчас уже в статусе done, а клиенту нужно выгрузить в 1С всю хронологию, когда статус был в start, когда в work итп.

Сейчас выгружаем всё руками из базы логов, но такое. Подумал, самое простое — отправлять http запросы через отдельные джобы. Тогда, в случае таймаута или другой ошибки джоба с http запросом, я в любой момент времени могу его повторить, заретраить, и он отправит именно те данные, которые были у него изначально, а не текущие данные заказа. И что-то в лоб решить не получается.

Логика сейчас такая, отказаться от фасада Http, написать на газле createRequest, отправить реквест в новый джоб, в джобе уже сделать send. Смущает, что выглядит немного громоздко. Может кто-то сталкивался с подобным или есть более элегантное решение?

3 ответов

15 просмотров

сделай аля вебхук менеджер который умеет по заданным входным данным (урл, постдата) создавать в бд запись и возвращать ид вебхука. по этому ид делай джобу которая будет слать те данные что были при создании. статус пишите туда же. если надо перезаслать клиент жмёт на кнопку вы заново делаете джобу с вебхук ид тем самым ему уйдут те данные что были а не актуальные

dev .
сделай аля вебхук менеджер который умеет по заданн...

Ну и очередность стоит в rebbitmq ложить с редисом идея плохая потеряешь данные

Trin-Zotoff Автор вопроса
Ivan Perehinskyi
Ну и очередность стоит в rebbitmq ложить с редисо...

сейчас проект небольшой, очереди раскидываются на database, с rabbitmq скорее негативный опыт, есть проект, где 1 из 100 джобов теряется в небытие с rabbitmq. хотя может просто настроено так

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта