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

Немножко пространный вопрос. Есть http-сервак, у которого POST-обработчик, который получает

стопку файлов. Он запихивает их в Mongo GridFS по очереди, получает айдишники от БД, и кидает их в RabbitMQ на обработку(чтобы не гонять через RabbitMQ сами многометровые файлы). Дык вот, на загрузке n-ного файла может случиться бяка, RabbitMQ недоступна, максимальная длительность запроса превышена, тому подобное. Это нормально обрабатывается, еррор сервак мне возвращает. Но в итоге у меня в Монге подвисают файлы с запроса, который как бы уже не нужен и их надо бы почистить(а в нормальной ситуации их чистят консьюмеры RabbitMQ)... Где бы почитать(особенно порадует со ссылками на гитхаб), как решать эту проблему? Я так понимаю, что мне надо всё это обернуть в некое подобие транзакции с роллбеком и коммитом... Или я сильно страдаю хернёй?

5 ответов

7 просмотров

Надеюсь, это не один инстанс монги 😂

Johnny-Ipcom🇺🇦 Автор вопроса
Roman Timofeev
Надеюсь, это не один инстанс монги 😂

А что такого? Это мой мелкий пет-проект, потыкать пальчиками во всё это) Тут критична именно обработка файла, на моём 8700К она занимает 5-10 минут и процентов 50-70 проца, а я хочу запустить это всё моих малинках... Всё остальное - мелочи, в день там будет десятка три запросов по 30-40 мелких файлов, думаю, монга справится с такой тяжелой работой. Или я тебя не понял.

сорян, но больно полотно воспринимать.. пытаюсь вычитывать и оч ай

Как вариант можно роллбэк написать, см. паттер saga https://microservices.io/patterns/data/saga.html

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

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

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
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта