【问题标题】:IBM Maximo - Querying API for data with very slow response timeIBM Maximo - 查询 API 以获取响应时间非常慢的数据
【发布时间】:2020-03-30 12:40:56
【问题描述】:

我一直在到处寻找解决这个问题的方法。

在我的工作中,我们正在尝试通过其他系统 REST API(返回 JSON 响应)将 Maximo 与其他系统集成。我能够使这种集成在小范围内工作,但是这个 API 需要 5 秒以上的时间来响应每个请求。目前,我已将此系统定义为 JSON 资源,并使用自动化脚本将非持久数据的每日“快照”复制到持久属性。所有请求都按顺序运行 - 对于 5 个正在测试的资产运行缓慢,并且绝对不会扩展到每天 1000 次调用。

假设不能以任何方式修改外部系统的API……有没有办法以非阻塞的方式查询这个API?我想如果我可以发送一个请求,然后发送下一个请求等,而无需等待回复继续进行,这将解决问题。

我查看了调用和发布通道以及企业服务,似乎企业服务和 JMS 队列可能是我需要的,但是文档说这些仅支持排队传入数据。 ..我看不出这如何解决我的问题。

有什么帮助吗?我完全坚持这一点。

谢谢!

【问题讨论】:

  • 如果您使用 SoapUI 或仅使用浏览器查询远程 API 会发生什么?响应时间是否更快,指向 JSON 资源是慢点?你能请求更少的数据,比如更少的列,减少双方的序列化/反序列化工作吗?
  • 您是否在 Maximo 中激活了正确的日志记录并分析了生成的日志?我在想 SQL-->INFO、INTEGRATION-->DEBUG、AUTOSCRIPT-->INFO...
  • @JPTremblay:我使用 POSTMAN 独立测试了 API 调用 (REST)……返回数据需要很长时间。
  • @Preacher:不幸的是,API 非常有限,基本上只返回一种类型的静态数据集......我目前只检索一条记录。一条记录会导致 5 秒以上的延迟...不过我会尝试使用 SOAP - 您的意思是向 API 发送数据?
  • 请提供有关您当前的解决方案和 Maximo 中的数据集成过程的更多信息。您是如何实现这个“我使用自动化脚本将非持久数据的每日“快照”复制到持久属性的。”?

标签: json rest asynchronous jms maximo


【解决方案1】:

我不得不做一些听起来很相似的事情,一次。我尝试了 JSON 资源,但它们对我不起作用。我最终使用Maximo 7.6 Scripting Features 中的示例来完成它。该文档中的第一个代码示例是一个库脚本,用于使用开箱即用的 Maximo 库进行 HTTP/S 调用,该文档中的其他示例使用 IBM's JSONObject and JSONArray classes(也可以从 Maximo 开箱中获取)来解析回复。

要让事情并发/多线程,您可以configure a cron task to call your automation script,并在不同的时间表上配置多个实例以调用同一个实例并使用 args 或其他一些机制来防止冲突。

【讨论】:

  • 这听起来很有希望,但我将如何处理 - 例如 - 500 个请求?如果我在脚本中循环它们,它们将按顺序运行,大约需要 5 * 500 秒才能完成。有没有一种方法可以利用线程池 - 或者以非阻塞方式进行调用,这样我就不会在发送请求 B 之前等待响应 A?
猜你喜欢
  • 1970-01-01
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-04
  • 2022-11-04
  • 2021-04-11
  • 2016-04-04
相关资源
最近更新 更多