在服务器WCF + Rest上处理长时间运行任务的最佳方法

时间:2015-03-26 02:04:33

标签: c# .net wcf rest

我们在主机上运行WCF + Rest服务。我需要对主机进行客户端调用,该主机将在服务器上启动长时间运行的任务(甚至最多15分钟),然后在该过程完成后再检查以获得结果。一种解决方案是让客户端在初始调用后每分钟左右检查一次主机 - 但这看起来效率不高。有没有办法通过WCF公开某种类型的事件,以便在服务器上完成任务时通知客户端?这种情况的最佳方法是什么? 感谢

1 个答案:

答案 0 :(得分:0)

如果没有更多申请细节,很难回答。 但是有几个选择(这里有一些):

  • 使用消息队列初始化并在任务完成时获取事件 完成(也许是矫枉过正)
  • 如果客户端是Web客户端,并且您可能有一个到客户端的Web套接字,则可以通知客户端任务已完成
  • 也许(不确定这是个好主意) 你可以使用双工wcf合约(因为你已经使用wcf),然后 service可以在任务时调用客户端接口上的方法 完成
  • 或者像您在问题中提到的那样进行简单的民意调查。

以下是有关双工合约的更多信息: https://msdn.microsoft.com/en-us/library/ms731064%28v=vs.110%29.aspx