【问题标题】:Best way to handle long running tasks on the Server WCF + Rest在服务器 WCF + Rest 上处理长时间运行任务的最佳方式
【发布时间】:2023-03-23 07:29:01
【问题描述】:

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

【问题讨论】:

标签: c# .net wcf rest


【解决方案1】:

如果没有更多的应用程序细节,有点难以回答。 但是有一些选择(这里有一些):

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

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


【讨论】:

    猜你喜欢
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2015-12-04
    • 2019-08-01
    • 2012-04-10
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多