2014-10-20 45 views
0

我有一堆Parse对象(可以高达200),需要更新一个共同的字段设置为一个共同的(短)字符串值更新。我尝试了使用一个循环来保存每一个循环,但是随后它将我的API使用量增加到极限,就像您可以想象的那样,其中有数百个API。从客户端(saveAll)Parse.com批量保存超时

因此,我研究了如何使用saveAll从Javascript客户端执行批处理。我得到的代码本身工作正常,它试图按预期更新所有文件。现在,这个问题似乎是它在批量POST内执行一批PUT,到https://api.parse.com/1/batch,虽然它将此视为来自客户端的单个HTTP操作,但parse.com服务器将其视为单个操作在超时限制方面。

如果批处理中有超过5个文件,它会超时(出错124),因为根据chrome的网络浏览器,出于某种原因,批处理中保存的每个人都需要约3秒钟的时间。一次保存如何能持续这么久?因为每次保存都应该是一个单独的API调用(如批处理操作的内部请求所示),所以这引发了为什么它会超时的问题。因为我正在从客户端运行此批次保存,所以不应该像云码(15秒钟)那样没有超时限制?

有人可以帮我理解吗?这是一个巨大的瓶颈,我无法找出任何其他解决方法。看起来像保存一批5个以上的对象(只有一个脏字符的字段)应该不会那么辛苦!

回答

0

由于所有对象都使用相同的字符串更新到相同的字段您是否考虑过使用集合?正如文档所说,您可以使用模型类或特定的Parse.Query创建新的子类。要更新的代码是简单的:

collection.reset([ 
    {"name": "Hawk"}, 
    {"name": "Jane"} 
]); 

https://parse.com/docs/js_guide#collections

+0

我看着这个和它看起来像一个实际上不能在集合中的一个批次使用复位对象保存对象到后端。这显然只会修改客户端的集合。看看这个:https://www.parse.com/questions/can-you-save-a-collection-all-at-once-something-like-colathersave。 – BryanP 2014-10-21 05:39:32