1

有没有办法缓存从 IBM MobileFirst Platform 中的 http 适配器接收到的响应?

从缓存中获取常用服务的数据而不是一次又一次地访问服务会更有效。即使是适配器(服务器)端缓存也会大大减少响应时间。

有没有办法在 IBM MobileFirst 中实现这一点?

4

2 回答 2

0

没有缓存适配器响应的内置机制。

也许这会给你一种方法:使用 Java 来“管理”缓存。您需要实现以下逻辑:

  1. 将数据保存在内存中(在变量中......)
  2. 决定何时返回缓存数据
  3. 决定何时清除数据并将请求传递给后端

如果使用 JavaScript 适配器,您可以调用 Java 代码
如果使用Java 适配器(从 MobileFirst Platform Foundation 7.0 开始),请在此处实现它...

也许您也可以使用 CDN,您需要在其中存储数据并在您的逻辑中决定何时访问 CDN,何时不访问。

于 2015-05-13T14:50:20.277 回答
0

为了扩展 Idan 的答案,没有内置的方法可以做到这一点。一些类似这样的代码可能会有所帮助(将其放在 Java 类中并从 JavaScript 适配器中使用) - 这是未经测试的:

import java.util.HashMap;

public class MFPCache {
    HashMap<String, String> cacheStore = new HashMap<String, String>();

    private static MFPCache objectCache = new MFPCache();

    private static MFPCache getCache() {
        return objectCache;
    }

    public static Object getObject(String key) {
        String value = getCache().cacheStore.get(key);
        return value;
    }

    public static void setObject(String key, String value, long duration) {
        getCache().cacheStore.put(key, value);
    }
}

请注意,此答案不处理:

  • 对象不在缓存中的情况。
  • 过时的缓存条目到期。
  • Java 世界中的线程安全。

将其留给其他人修复并将其编辑为答案!

于 2015-10-21T12:15:41.730 回答