长期运行的REST API的方法

时间:2018-12-06 01:19:53

标签: c# rest message-queue

我们正在尝试使用REST API,用于消息处理器,该消息处理器的某些操作可能会花费超过配置的超时时间。

想知道,如果对API的Http调用超时,会停止执行API,还是API会继续执行?

想法是,我们可以触发并忘记API,我们不担心API是否不返回404或503。但是想知道API是否将继续执行?

任何输入或建议表示赞赏。

2 个答案:

答案 0 :(得分:0)

您应该使用某种后台处理来处理该过程。 我建议为此使用Hangfire。 https://www.hangfire.io/ 使用Hangfire将工作加入队列,它将返回工作ID。您可以将此作业ID返回给客户端。 公开另一个API,以检查该作业的状态。

答案 1 :(得分:0)

很棒的方法是使用回调/观察者模式来处理此问题。首先,了解超时有两种类型,即服务器和客户端。您可以显式指定客户端超时,服务器超时由服务器本身处理。 因此,您将需要实现

  1. 您可以确定每个请求的唯一方式,并在触发前将其标记 内存或文件/数据库。
  2. 使用关联的回调方法触发请求。 因此,在响应时,您可以控制执行诸如标记请求之类的操作 完成或失败,或者是什么。
  3. 标记/删除请求数据。