C # какой шаблон использовать, чтобы иметь синхронный сценарий и сценарий pub / sub для долгосрочной задачи - PullRequest
0 голосов
/ 12 февраля 2019

Допустим, у меня есть библиотека для обработки изображений, и мне нужно, чтобы она работала в обоих направлениях - синхронно и как шаблон pub / sub.Таким образом, первый метод ProcessBigListOfImages не возвращается, пока не будет завершен.И второй метод ProcessBigListOfImagesStart должен мгновенно возвращаться с некоторой информацией о подписке (и лучше с обратной связью), поэтому он вызывается этим процессом где-то в будущем.

Теперь, это то, что мне нужно, когдаиспользовать локальную файловую систему и вычисления и хранилище Azure.Две разные платформы, но схожие задачи.Я хочу иметь тот же API.Это выполнимо?

Мне, вероятно, нужно снова прочитать некоторые книги по шаблонам проектирования, чтобы освежить мою память ...

1 Ответ

0 голосов
/ 12 февраля 2019

Для долгосрочных задач, для которых вы хотите мгновенно вернуться, вам придется использовать очереди (службы Azure Bus / RabbitMQ и т. Д.).Просто поместите сообщение в очередь с идентификатором задачи и верните идентификатор задачи, который можно использовать для отслеживания.

С другой стороны, ваш рабочий процесс выберет задачу из очереди и отметит ее как выполненную для идентификатора задачи.Вы можете использовать сервис db / cache для сохранения и отслеживания вашего идентификатора задачи.Ваш рабочий процесс действительно зависит от ваших предпочтений, это может быть веб-работа, веб-сервер или сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...