【问题标题】:Masking 1000 ajax post request with better performance以更好的性能屏蔽 1000 个 ajax 发布请求
【发布时间】:2018-01-11 07:16:03
【问题描述】:

我们有一个安装在大约 600 台服务器上的应用程序。此应用程序公开了一个 Web api,它可以获取应用程序的版本信息。

我的要求是在每台服务器上显示应用程序的版本。我通过以下方式在 asp.net 应用程序中实现了这一点:

  1. 在 aspx.cs 页面中使用服务器名称作为参数编写 Web 方法。此方法将构建 web api URL,调用 web api,获取响应,构建对象并返回为 json 字符串。

  2. 我已经为每个服务器名称编写了一个jquery ajax post请求到上述方法。成功后,构建一个 html 表格行并将其附加到表格中。这样当我们得到响应时,它就会显示给用户。

这对于 30-40 台服务器来说绝对适用。但是当它增加时,处理所有请求需要大量时间(30 - 40 分钟)。并且有多个用户使用这个 asp.net 应用程序,我们开始收到错误。

是否有任何其他方法可以更快地实现这一目标并且为多个用户而不会出错?

【问题讨论】:

  • 感谢您的回复。应用程序由第 3 方维护。我们不能对它们进行任何修改。只有 web api url 提供给我们。

标签: c# jquery asp.net ajax


【解决方案1】:

此信息多久更改一次?如果这些数据很少更新,我建议如下。

让每台服务器在服务器启动时将此信息保存到共享数据库表中。如果可以在服务器运行时更​​改应用程序版本,请更新数据库中的相应记录。

当您的服务获取有关应用程序版本的信息时,请从数据库表中获取一次,而不是直接从每个服务器请求它。

【讨论】:

  • 感谢您的回复。应用程序由第 3 方维护。我们不能对它们进行任何修改。只有 web api url 提供给我们。
  • 您提到您在 aspx.cs 页面中编写了一个 Web 方法。所以,我相信这意味着您可以访问服务器端(可能您的 ASP.NET 应用程序从另一个应用程序请求数据,不是吗?)。因此,在您的服务器端实现一个静态集合(字典),并在您的应用程序启动时从远程服务器收集数据来填充它。之后仅根据缓存信息生成 json 数据。如果其中一台服务器可以更改其版本,则不时(每 10 分钟/每小时/每天一次)更新缓存数据。
猜你喜欢
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 1970-01-01
相关资源
最近更新 更多