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

Чат, у меня есть вопрос: Я использую Net core Web api

на микросервисы.

У меня есть сервис обработки фотографий (object detection).

Хочу реализовать работу таким образом:

1) Сервис (на c#) получает post запрос с фотографией.
2) Загружает фотографию и кладёт её в хранилище (например в s3).
3)Создаёт фоновую задачу и клалет её в очередь сообщений.
4) отдаёт в ответе URL по которому можно проверить статус задачи.

-----

Очередь сообщений слушают воркеры на Python. Они берут фотографии и прогоняют их через нейронку. И отдают ответ о выполненной работе.

Проблема возникает в том что я хочу использовать Celery в python воркирах.

И если бы сервис у меня был бы не на c# а на Python то тут все было бы просто. Но я хочу использовать именно c#.

Как лучше быть?
https://devacademy.ru/article/ochered-soobschenij-i-asinhronnyie-zadachi-s-pomoschyu-celery-i-rabbitmq/


В питоне это можно решать так

Есть воркера файл с функцией my_ml_task() с пометкой @app.task

Эта функция делает то что мне нужно - инферит нейронку и делает предикт. И возвращает json

Далее в Web api на Python я вызываю


from tasks import my_ml_task

#запуск задачи
predict = my_ml_task.delay()

predict.ready() #для проверки готов ли ответ.

predict.get() #для вывода результата


Все. Вся работа скрыта в фреймворке celery.

Хрчу получить такой же опыт в api на C#.

Как можно использовать celery оттуда? Вдруг кто то видел?

1 ответов

15 просмотров

Не очень понимаю, зачем тебе еще какая-то селери. Вот у тебя в реббите уже лежит очередь заданий. Берешь воркером задачу и делаешь. Если их много, они все берут. Очень масштабируемо, очень похристиански.

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

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

а через 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
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
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта