为什么Xively发送过时(可能是缓存的)数据?

时间:2014-01-13 11:45:49

标签: xively

我注意到当我更新Feed(设置新值)然后读取Feed时,返回的数据并不总是包含我上次更新。这就好像Xively正在返回一个缓存的响应。最终(大约5分钟后)一个请求将导致返回新值。

这是一种开发模式设备;我可以在更新后立即看到设备的Xively状态页面中反映的新值。我还注意到,导致过期数据的请求不会出现在Xively请求日志中。在发送请求并获得过期响应5分钟左右后,请求将显示在请求日志中,并将返回最新响应。

我像这样更新我的Feed: curl -X PUT -d@feedupdate.json -H X-ApiKey:my_key http://api.xively.com/v2/feeds/feed_id.json

其中feedupdate.json包含:

{     “版本”:“1.0.0”,     “datastreams”:[     {         “id”:“stream_id”,         “current_value”:“202”     }     ] }

我请求Feed状态如下:

curl -o feedrange.json -H Cache-control:no-cache -H Pragma:no-cache -H X-ApiKey:my_key http://api.xively.com/v2/feeds/feed_id.xml?start=2014-01-13T10:00:00Z

TIA。

1 个答案:

答案 0 :(得分:0)

据我所知,Xively方面没有任何改变。

话虽这么说,我最近也注意到了这个问题。但是,我无法均匀地重现它。尝试在浏览器中转到Feed,它是否仍然缓存?尝试使用不同的互联网连接,是否仍然可以缓存?

我的解决方案是在设备上设置cache-control: no-cache标头,这立即解决了我的问题。这就是我要向你推荐的内容,但看起来你已经把它作为标题传递了。

我建议您查看可以在cache-control标题中设置的其他选项并进行实验。除了尝试其他设备和互联网连接,看看你是否可以找出它被缓存的位置。

如果您提供了有关您的设置的信息,那么它也可以帮助我。语言,硬件,互联网设置等。