【发布时间】:2011-09-24 09:03:09
【问题描述】:
我开发了一个处理密集型的类库,我目前通过 WCF REST 服务调用它。
REST 服务直接访问类库的 DLL,WCF REST 服务或多或少是系统的接口。
假设定义了以下方法:
创建请求
启动一个需要 5 分钟的线程,但会立即返回进程生成的会话 ID,该线程用于向数据库报告何时完成。
检查状态
接受会话 id 并检查数据库以查看进程是否已完成。
我不得不认为有更好的方法来“管理”正在运行的线程,但是,我的要求是用户应该在发出请求后立即收到来自 REST 服务的响应。
我正在使用 WCF Message 属性将 XML 返回到浏览器,并且由于可以从任何编程语言调用此应用程序,因此我不能使用经典的 WCF 和回调(我想,如果我错了,请纠正我)。
有时我会遇到一个问题,即发生错误并且 iscomplete 事件永远不会写入数据库,因此“检查状态”方法表示它正在永远处理。
有没有人知道通常会做什么以及在这种情况下可以做什么?
谢谢!
杰弗里·凯文·普瑞
【问题讨论】:
-
不确定这是否适用于 REST,但在一定限制内,理想的解决方案是使用 WCF 的双工通信机制来使用双工通信
标签: c# .net wcf rest asynchronous