【发布时间】:2017-03-25 22:24:32
【问题描述】:
我需要创建一个服务来处理长时间执行的作业。目前我正在尝试使用例如端点“POST /api/start”开发WebAPI REST服务,它将返回JobId。之后,我将使用“GET /api/status/{jobId}”等其他端点轮询服务。
问题是 REST 服务不能有状态,或者至少这不是好的做法。也许您可以建议我一些将服务与实际 JobHandler 分开的好方法?或者,如果可以在 WebAPI 中执行此操作,请说明如何创建单调,直到 IIS 重置后才会释放。
谢谢。
更新: 经过所有调查后,我决定创建 WebAPI REST 服务来与客户端进行通信,并且对于长时间执行的作业,我使用 WCF 通信层开发了 WindowsService。这是我能找到的最好的解决方案,它非常适合我。谢谢大家。
【问题讨论】:
-
我必须承认,这不是我有丰富经验的领域(实际上,我也很想听听这个问题的答案),但服务可以吗?在服务器上启动一个可执行文件来完成这项工作(或者这不是您的想法)?
-
@EJoshuaS 我想在内存中执行操作,因为我想控制它的进度,我不确定是否可以启动 exe。还是我错了?
-
取决于您所说的“控制”。您可以在启动时向它传递参数和/或使用消息队列或数据库在运行时向它传递信息。
标签: c# rest wcf asp.net-web-api