Re: Допустимо ли выполнение длительных операций в веб-сервис
От: Красин Россия  
Дата: 01.08.06 06:50
Оценка:
Здравствуйте, Аноним, Вы писали:

В связи с такими задачами и был придуман механизм асинхронного вызова. Для этого в web сервисе делаем методы:
public Guid StartOperation();
public bool IsOperationFinished(Guid operationId);
public void StopOperation(Guid operationId);

В StartOperation начинаем исполнение задачи в другом потоке, регистрируем ее в своей внутренней hash-таблице, где задаче дается ключ в виде guid-а, а в качестве значения идет поток (или номер исполнителя) в котором выполняется задача. После этого возвращаем клиенту этот Guid, не дожидаясь завершения задачи. Семантика двух остальных методов очевидна.

Если вам надо только запустить задачу, а контроль и возможность отмены не требуется, то решение упрощается до
public void StartOperation();
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.