【问题标题】:NancyFx: Set response timeout on specific routeNancyFx:在特定路由上设置响应超时
【发布时间】:2016-08-11 00:03:01
【问题描述】:

问题的简短描述:我需要在 nancyfx 中的特定路由上设置超时。

详细描述:我有一个路由,当被调用时,它会加载大量文件(50 到 200 个之间),将它们添加到 zip 文件流(带压缩),将流保存到存储中并返回文件的位置到前端。

问题是应用程序在所有文件都添加到 zip 之前超时。

那么,在 NancyFx 中设置特定路由超时的正确方法是什么?

【问题讨论】:

  • 对此的另一条腿是发出请求的客户端可以设置自己的超时限制,而不管您设置了任何超时。例如,.net 中 web 请求的默认超时时间是 100 秒,因此如果这花费的时间超过此端点的大多数消费者将超时,除非修改他们自己的超时规则。我相信菲尔已经给了你一个很好的方向来解决这个问题。

标签: c#-4.0 routes nancy


【解决方案1】:

你没有。您不应该在 http 请求中运行长时间运行的进程。您应该卸载请求并轮询结果,或者在准备好时给用户一个链接。

【讨论】:

  • 我会考虑卸载请求。但是可以在 nancy 中设置请求超时吗?只是好奇。
  • Nancy 没有内置它。当我在过去这样做时,我创建了 2 个异步委托,1 个用于逻辑,一个只是 Thread.sleep(timeout),它们在它们上返回 Nancy.Response 和 WaitAny(),并从端点返回委托结果.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
  • 2017-09-26
  • 2012-11-10
  • 1970-01-01
相关资源
最近更新 更多