powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF служба с асинхронным выполнением
5 сообщений из 5, страница 1 из 1
WCF служба с асинхронным выполнением
    #35801059
secondstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла задача - реализовать WCF службу, которая могла бы строить очередь задач и постепенно выполнять их в фоне. При этом клинетское приложение могло бы спрашивать статус задач. Проблема возникла из-за того, что методы службы могут выполняться как 1 секунду, так и 5 минут, что приводит к разрыву соединения со службой по таймауту, либо к тормозам пользовательского интерфейса.
Сейчас структуту службы вижу так :
1) WCF сервис хостим как Windows Service
2) При вызове метода сервис записывает задачу в очередь в какой-то таблице SQL сервера и возвращает ИД задачи
3) В сервисе крутится какой-то код, который проверяет эту очередь на наличие не завершенных задач и выполняет их.
4) Клиент по ИД задачи может посмотреть статус (ожидает, выполняется, выполнена, ошибка)
5) Если по каким-то причинам сервер с WCF перезапускается, то при следующем старте служба опять ищет первую незавершенную задачу и начинает ее выполнять.

Сомнения вызывает п.3 Возможно ли в сервисе стартовать какой-то код через какие-то промежутки времени?
Или может кто вообще другой алгоритм или технологию подскажет?
Всем спасибо заранее!
...
Рейтинг: 0 / 0
WCF служба с асинхронным выполнением
    #35801184
Gatman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используйте InstanceContextMode = Single (или Session)
...
Рейтинг: 0 / 0
WCF служба с асинхронным выполнением
    #35801220
Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Q
Гость
secondstar5) Если по каким-то причинам сервер с WCF перезапускается, то
нет никаких причин перезапускать процесс worker, занимающийся обработкой заданий, который отлично живет самостоятельной жизнью. Иногда даже физически на другом(их) сервере(ах). :)

Вы же уже пошли по пути слабой связи (WCF). Можно и коммуникационный сервис с обработкой слегка развязать: взаимодействовать только через БД или MQ. :)
...
Рейтинг: 0 / 0
WCF служба с асинхронным выполнением
    #35801287
secondstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я еще никуда не пошел :) Так что предложения по архитектуре принимаются. А вышеизложенный алгоритм - это просто то, что первое пришло в голову. :)

_Явных_ причин перезапускать процесс нет. Но надо сделать так, чтобы в случае зависона/выруба питания/... очередь задач не потерялась.
...
Рейтинг: 0 / 0
WCF служба с асинхронным выполнением
    #35801315
Q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Q
Гость
И не будет теряться в транзакционной БД или MQ. Опять же, обновление компонентов обработчика не будет затрагивать коммуникацию, и наоборот.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF служба с асинхронным выполнением
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]