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 ответов

8 просмотров

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

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

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

Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
Всем привет. Подскажите, пожалуйста, как вы реализовываете следующий функционал. Допустим есть форма, в которой имеется выпадающий список со значениями. Значения хранятся в БД...
Евгений
7
Хех, данные на форме всегда будут "из прошлого", т.к. перезаполнять поля формы в процессе редактирования пользователем - так себе идея. Пользователь может открыть форму редакт...
Alexander Somov
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Карта сайта