【发布时间】:2017-12-07 18:12:48
【问题描述】:
我创建了一个后台作业,每分钟运行一次。它的目的是删除数据库中旧的或过时的数据。在这种情况下,用户提交一个附有时间戳的时间,这两个值存储在数组times 和timestamp 中。所以我编写了我的云代码来通过时间戳检查时间是否超过一小时。如果是这样,请将它们从数据库中删除。但是,这就是我遇到麻烦的部分。这是我的云代码,您可以查看发生了什么:
Parse.Cloud.job("expireTimes", function(request, response){
Parse.Cloud.useMasterKey();
var currentTime = new Date().getTime() / 1000;
var query = new Parse.Query("Wait");
query.find().then(function(results) {
var times = (results.length>0)? results[0].get("times") : "n/a";
var timestamps = (results.length>0)? results[0].get("timestamp") : "n/a";
console.log("Got " + results.length + " Times: " + times);
console.log("Got " + results.length + " Timestamps: " + timestamps);
for (var i = 0; i < timestamps.length; i++) {
if (currentTime >= timestamps[i] + 3600) {
// Delete old wait times
timestamps.splice(i, 1);
times.splice(i, 1);
i--;
} else {
break;
}
};
response.success("success");
}, function(error) {
response.error(error);
});
})
如何更新数据库并删除数组中的值。因为当用户提交时间时,它只是添加到times 数组中。好吧,如果我每分钟都有后台工作,那么一些条目不会超过一个小时。我想保留那些,但摆脱其他的。
有什么想法吗?任何帮助深表感谢。 谢谢
【问题讨论】:
标签: javascript parse-platform parse-cloud-code