在Parse中创建一个删除所有类中所有旧对象的作业

时间:2015-06-17 14:48:07

标签: class parse-platform chat

我在IOS中使用Parse.com创建了一个聊天应用程序。我希望在30分钟后删除所有旧消息。每个聊天室都是一个解析类,它包含两个用户之间的消息。

你能帮助我在解析中创建一个重复的作业,搜索所有类中的旧消息并删除它们吗?

2 个答案:

答案 0 :(得分:1)

为避免超出请求限制,您可能应该每隔一分钟删除一次对象。您可以找到所有对象并通过类似的方式删除它们。

var time = new Date(new Date() - 30*60*1000);        // 30min ago
var query = new Parse.Query('ChatLog');
query.lessThan('createdAt', time);
query.limit(1000);
query.find().then(function(results) {
    return Parse.Object.destroyAll(results);
});

答案 1 :(得分:0)

@iForests的答案很好。 .each()可能有一种方法可以做同样的事情,它不会有任何查询限制。也许是这样的:

var thirtyMinutes = 30*60*1000
var now = new Date()
var thirtyMinutesAgo = new Date(now-thirtyMinutes)

var query = new Parse.Query('ChatLog')
query.lessThan('createdAt', thirtyMinutesAgo)

var objectsToDelete = []

query.each(function(object){
  objectsToDelete.push(object)
}).then(function(){
  var howManyDeleted = objectsToDelete.length
  Parse.Object.destroyAll(objectsToDelete)
  status.success(howManyDeleted+' chat logs deleted.')
}, function(error){
  status.error('Error during background job.')
})

原谅我缺少分号 - 我是斯威夫特人:)祝你好运!