【问题标题】:API time out when trying to send serialized data if data is more in number如果数据数量更多,则尝试发送序列化数据时 API 超时
【发布时间】:2014-03-20 22:34:17
【问题描述】:

我正在开发一个为商店连接的 API。现在有一堆项目和用户群,我有不同的可序列化类来表示这些数据。

我面临的问题是,当我进行 GET 调用并且记录计数大于 5K 时,序列化需要很长时间,因此 GET 调用超时。我已经找到了解决此问题的方法,如果数据数量更多,则将记录中的数据分开,但我想解决此问题。有什么方法可以让我的 API 响应 GET 请求并一次性发送所有数据。

我正在用 C# 创建 API。

【问题讨论】:

    标签: c# api serialization get http-compression


    【解决方案1】:

    在不知道任何细节的情况下,除了您的事务对大小至关重要并且用 C# 编写之外,我建议您考虑:

    • 改用 POST
    • 从您的 Web API 更改超时值
    • 修改服务器设置(检查 GET 大小限制、超时)
    • 更喜欢序列化 JSON 而不是 XML
    • 使用多线程(首先加载填充视图所需的大量数据)
    • 如果数据量是/将成为问题,请放弃在一个事务中传输所有数据的想法。也许您已经可以假设您的数据库将来会以一定的速度增长。
    • 以更复杂的方式重新设计您的客户端,您可以过滤您的请求以仅获取实际需要的数据(例如,完成一项任务或为不太笼统的请求提供更具体的信息)

    希望这对您有所帮助或启发...

    【讨论】:

    • 感谢您的回复,以下是我对您回复的评论,1) 我们不能使用 POST 进行 GET 调用。我们正在尝试遵循 REST 架构。 POST 将用于添加一些内容。2)我们已经增加了超时,但不能增加超过 5 秒的产品要求。 3)这是我们可以看看的东西。 4) 将不得不考虑在 XML 上使用 JSON。 5) 是的,我们目前正在遵循 Chunk 方法并分配负载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 2012-11-10
    • 1970-01-01
    • 2023-02-12
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    相关资源
    最近更新 更多