4

WCF 服务器上的一项操作正在工作大约 8(!!!) 小时......完成后我需要在客户端上显示此操作的结果。

与客户保持联系这么长时间可以吗?如果可以,24小时营业可以吗?还是像 这样使用 smth 更好?

我试图在 SO 上找到答案,但没有成功..

4

1 回答 1

2

在处理预计需要相当长的时间的操作时,异步总是要好得多(我个人声明操作“运行缓慢”的经验法则是,该操作需要大致花费普通用户点击所需的时间在慢速网页上“重新加载”,我估计大约需要 10 秒;我曾在一家公司工作,任何超过半秒的操作都被宣布为“慢速”)。

保持连接打开存在许多问题:

  • 超时- 您必须将它们设置为八小时,这相当于出于所有实际目的禁用它们,至少就用户交互而言
  • 客户端重新启动- 如果您的客户端正在等待来自服务器的同步响应,则报告结果将无法在客户端重新启动后继续存在
  • 中间进度报告- 当一个操作运行几个小时时,它很可能由多个阶段组成。当您的操作经历多个阶段时,异步可让您报告完成百分比和一般操作过程。

这就是为什么您应该强烈倾向于在所有长时间运行的操作中使用双工通信。

于 2012-12-24T13:42:25.763 回答