如何开发休息服务以处理长期工作

时间:2017-03-25 22:24:32

标签: c# rest wcf asp.net-web-api

我需要创建一个处理长时间执行作业的服务。目前我正在尝试开发WebAPI REST服务,例如,端点" POST / api / start",它将返回JobId。之后,我将使用其他一些端点进行轮询服务,例如" GET / api / status / {jobId}"。

问题是REST服务不能拥有状态,或者至少它不是好的做法。也许您可以向我推荐一些将服务与实际JobHandler分离的好方法?或者,如果可以在WebAPI中执行此操作,请说明如何创建单线程序,在重置IIS之前不会将其处理。

谢谢。

更新: 在所有调查之后,我决定创建WebAPI REST服务以与客户端进行通信,并且对于长期执行的作业,我使用WCF通信层开发了WindowsService。这是我能找到的最好的解决方案,它非常适合我。谢谢大家。

1 个答案:

答案 0 :(得分:1)

This可能会有所帮助。

  

如果您想坚持轮询,则应创建一个新的REST资源,其中包含实际状态和长时间运行任务的进度。