我有一个WEB API方法,在一个动作方法中,我构建了一个模型,其中一个字段是从外部API构建的。然而,速度优化很重要,我希望在X分钟后将该单个请求缓存到外部API。我试图使用HttpClient和Delegating处理程序来实现它,但欢迎其他任何东西。
答案 0 :(得分:0)
对我来说,更好的解决方案是将您的WEB Api的结果缓存在内存缓存或分布式缓存
中这是我为分布式缓存执行的实现
public class TimeService extends Service {
// constant
public static final long NOTIFY_INTERVAL = 10 * 1000; // 10 seconds
// run on another Thread to avoid crash
private Handler mHandler = new Handler();
// timer handling
private Timer mTimer = null;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
// cancel if already existed
if(mTimer != null) {
mTimer.cancel();
} else {
// recreate new
mTimer = new Timer();
}
// schedule task
mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 0, NOTIFY_INTERVAL);
}
class TimeDisplayTimerTask extends TimerTask {
@Override
public void run() {
// run on another thread
mHandler.post(new Runnable() {
@Override
public void run() {
// display toast
startService(new Intent(this, MyService.class));
}
});
}
private String getDateTime() {
// get date time in custom format
SimpleDateFormat sdf = new SimpleDateFormat("[yyyy/MM/dd - HH:mm:ss]");
return sdf.format(new Date());
}
}