Asyc API方法

时间:2014-11-17 07:32:27

标签: web-services asynchronous asp.net-web-api async-await

我正在开发一个项目,该项目公开了用于加密文件和执行其他任务的Web Api。我想要的是使加密任务异步,这是因为文件的大小可能超过1GB,我不希望客户端继续等待文件加密。我想要的是,一旦加密请求被发送到api,客户端就会收到您的请求被接受的通知,并在完成成功或失败的通知后再次发送给客户端。同时客户可以做任何事情。 有什么最好的做法,而且我在asp.net mvc工作

1 个答案:

答案 0 :(得分:1)

您需要卸载加密任务到您服务中的另一个线程。这将释放(完成)请求处理线程,客户端可以继续使用其他东西。您可以包装加密任务,以便在成功完成或失败后,调用回调。此回调必须负责通知客户端。

要通知客户端,完成加密任务后,您有几个选项,您必须在回调中编码:

  1. 电子邮件结果的客户。
  2. 如果客户端是服务并侦听特定端口,则可以接受初始加密请求中的回调URL ,并可以在加密任务后调用此URL。假设客户端正在运行http服务。
  3. 如果客户端有任何其他集成点(如文件系统,数据库,面向消息的中间件),则使用它们通知任务完成。