我有一个IOS应用程序,并且由于免费套餐的30 / sec请求限制,我想确保最低限度地使用API请求到parse.com。有人可以澄清是否在一个方法调用中保存不同的PFObjects" [PFObject saveAll:NSArray]"相当于1个API调用或多个API调用。
我需要一个明确的答案,因为在互联网上的任何地方都没有明确的答案。 Parse.com支持请帮助,因为我想以不同的方式对实现进行编码,如果它考虑了许多API请求,在这种情况下,当我单独保存每个pfObject时,我将确保我有更好的错误处理。
感谢。
答案 0 :(得分:6)
来自Parse:
saveAll尝试尽可能少地执行API调用。通常,对saveAll的调用只会导致一个API请求。但是,如果集合中的任何对象与另一个未保存的对象有关系,则必须首先保存该对象,从而产生更多的API请求。
https://www.parse.com/questions/saveall-how-many-api-requests
答案 1 :(得分:5)
我正在使用PFObject saveAllInBackground:block,无论是否与另一个未保存对象有关系,我在Analytics中的api计数总是会增加数组中对象的数量。
答案 2 :(得分:5)
随着Parse移至new pricing model,他们也改变了批处理操作请求(例如saveAll
)的计数方式:
以前的批处理请求计为单个请求,现在需要n
个请求(其中n
是传递给saveAll
的对象数。)
对于已经依赖它的应用程序,有一种旧的计数方式的扩展,但saveAll
批量操作(如def counterVolume(data):
x = ["x"]
y = ["y"]
for each in data:
y.append(each.counter_volume)
x.append(each.timestamp)
message = {"columns": [x,y]}
print "message: " + json.dumps(message)
)每个对象使用1个请求
答案 3 :(得分:1)
从我看到的使用Parse,将许多PFObjects帐户保存为1个API调用。
然而,我不知道的是,如果一次保存的对象数量有任何限制,仍然被视为1 API调用。
另外,我建议您自己测试一下。尝试一次保存多个对象,并在仪表板中查看API调用号码的变化情况。
请注意,如果一个对象失败(例如,对象不存在),批处理操作将作为一个整体失败。
答案 4 :(得分:1)
对我来说,saveAll也使用尽可能多的API调用来保存对象。我认为他们用新的定价改变了这一点,这是没有意义的,因为一个用户一次保存多个数据会导致Api消费的疯狂高峰。