очередь на веб-сервис WCF - можете ли вы реализовать что-то вроде фоновой задачи - PullRequest
2 голосов
/ 01 декабря 2011

У меня есть сервис, который выполняет обработку изображения на изображении, предоставленном клиентом. Каждая обработка занимает центральный процессор (3 минуты времени выполнения / образ), поэтому я не позволю обрабатывать более 1 изображения за один раз.

Что я сделал, так это то, что при вызове службы изображение сохраняется на сервере и добавляется запись в базу данных со статусом в очереди.

Теперь я хотел бы создать фоновую задачу или что-то, что будет принимать каждую запись из базы данных, которая имеет статус В очереди, обрабатывает это изображение, обновляет статус записи до Готово, а затем принимает новую запись со статусом В очереди и так на.

Возможно, в какой-то момент в очереди нет изображения.

Как вы предлагаете мне реализовать это?

Ответы [ 3 ]

2 голосов
/ 01 декабря 2011

Звучит так, как будто вы хотите получить услугу в очереди.

http://msdn.microsoft.com/en-us/library/ms731089.aspx

Это позволяет вам сосредоточиться на основном алгоритме и не сильно беспокоиться о механизме постановки в очередь сообщений (например, создание пользовательских таблиц БД для очередей и т. Д.). Очередь звучит легко, но заставить ее работать надежно сложнее, чем кажется - лучше оставить это экспертам из MS: o)

Он также обеспечивает некоторые хорошие функции, такие как долговечность, обработка ядовитых сообщений и т. Д.

0 голосов
/ 01 декабря 2011

Можно использовать Windows Server AppFabric для размещения службы WCF, поддерживаемой рабочим процессом.Вместо service.svc это расширение service.xamlx.AppFabric предназначен для запуска подобных процессов и будет масштабироваться под ваши потребности.

0 голосов
/ 01 декабря 2011

Возможно, вы сможете разработать службу Windows, которая каждую минуту опрашивает базу данных для обработки любых изображений.

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