【问题标题】:Asyc API method异步 API 方法
【发布时间】:2015-01-14 01:34:55
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 您是否建议为此使用 AJAX ?
    • 客户端可以是任何东西,android,IOS,web客户端,通知机制应该是什么?
    • 我们可以将推送消息用于 android/IOS 应用程序。对于基于浏览器的客户端,AJAX 可用于轮询服务器以获取可以让客户端知道任务是否完成(或错误完成)的消息。如果消息是发给用户的,而这个过程需要很长时间,那么我们必须通过电子邮件机制通知;这将允许用户在不等待结果的情况下关闭浏览器。
    猜你喜欢
    • 2015-03-30
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    相关资源
    最近更新 更多