繁体   English   中英

如何在一段时间后删除parse.com中的对象

[英]How to delete objects in parse.com after a set amount of time

基本上我想知道如何在一段时间后删除服务器上的对象主要的想法是知道如何在服务器自动指定时间之后删除对象,这样对象就不会持续很长时间。

谢谢。

您必须创建一个“工作”,这是您可以从您的parse.com帐户安排的任务。

这是一个示例代码,它删除所有帖子有70天以上。

Parse.Cloud.job('deleteOldPosts', function(request, status) {

    // All access
    Parse.Cloud.useMasterKey();

    var today = new Date();
    var days = 70;
    var time = (days * 24 * 3600 * 1000);
    var expirationDate = new Date(today.getTime() - (time));

    var query = new Parse.Query('post');
        // All posts have more than 70 days
        query.lessThan('createdAt', expirationDate);

        query.find().then(function (posts) {
            Parse.Object.destroyAll(posts, {
                success: function() {
                    status.success('All posts are removed.');
                },
                error: function(error) {
                    status.error('Error, posts are not removed.');
                }
            });
        }, function (error) {});

});

您必须在main.js文件中编写此代码,请按照以下步骤操作: https ://parse.com/docs/cloud_code_guide#started

在解析上传main.js文件后,您可以安排工作。

单击“作业”选项卡

这很简单,在列表中选择您的工作名称,您可以计划何时启动工作,每小时,每天......

在此输入图像描述

Parse.Cloud.useMasterKey(); 已在Parse Server版本2。0。0(2016年12月7日)中弃用。 从那个版本开始,它是一个无操作(它什么都不做)。 您现在应该将{useMasterKey:true}可选参数插入到需要覆盖代码中的ACL或CLP的每个方法中。

我最终使用了与Bluety代码非常相似的代码,但进行了一些修改:

Parse.Cloud.job('deleteOldActivityLog', function(request, status) {
    var today = new Date();
    var days = 70;
    var time = (days * 24 * 3600 * 1000);
    var expirationDate = new Date(today.getTime() - (time));

    var query = new Parse.Query('ActivityLog');
        // All records created more than 70 days ago
    query.lessThan('createdAt', expirationDate);
    query.each(function(record) {
        return record.destroy({useMasterKey:true});
    },{useMasterKey:true}).then(function(result) {
        console.log("deleteOldActivityLog job completed.");
        status.success("deleteOldActivityLog job completed.");
    }, function(error) {
        alert("Error in deleteOldActivityLog: " + error.code + " " + error.message);
        status.error("Error in deleteOldActivityLog: " + error.code + " " + error.message);
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM