2015-03-26 4 views
0

У нас есть служба WCF + Rest, работающая на хосте. Мне нужно сделать клиентский вызов на хост, который инициировал бы длительную задачу на сервере (даже до 15 минут), а затем проверить, как только этот процесс завершится, чтобы получить результат. Одним из решений является проверка клиента хостом каждую минуту или около того после первоначального вызова, но это кажется не очень продуктивным. Есть ли способ показать какой-либо тип события через WCF, чтобы клиент был уведомлен о завершении задачи на сервере? Каков наилучший подход для такого типа сценариев? спасибоЛучший способ обработки долгосрочных задач на сервере WCF + Rest

+0

возможно дубликат [Как сделать WCF RESTful службы работы асинхр?] (Http://stackoverflow.com/questions/16604024/ как к косметическому ФОС-успокоительному-сервис-работа-асинхронном) –

ответ

0

Тип трудно ответить без дополнительной информации о приложении. Но есть несколько альтернатив (в данном случае некоторые из них):

  • Использования очереди сообщений для инициализации и получения событий, когда то задача сделать (возможно, избыточен)
  • Если клиент веб-клиент и у вас есть возможность иметь веб-сокет для клиента, вы можете уведомить клиента о том, что задача выполнена.
  • Возможно (не уверен, что это хорошая идея) вы можете использовать контракт на дуплекс wcf (поскольку вы уже используете wcf) , то служба может вызывать метод на клиентском интерфейсе, когда задание сделано
  • Или выполните простые опросы, как вы упомянули в своем вопросе.

Вот еще информация о дуплексных контрактов: https://msdn.microsoft.com/en-us/library/ms731064%28v=vs.110%29.aspx


Смежные вопросы