如何计算 CloudCode 函数中的请求数?

How to calculate the number of requests in a CloudCode function?

我正在构建我的第一个应用程序,它使用 Parse 来存储用户数据和发送推送通知。 我们预计该应用程序如果由于其利基市场而获得成功,用户不会超过 10,000 人,因此它不会拥有庞大的用户群,尽管在高峰时段可能会从他们那里获得繁忙的流量。 我不确定我的 CloudCode 函数的结构是否尽可能高效,并且担心 requests/second 的数量在高峰时间失控(如果我们达到目标用户数)。

是否有任何方法可以计算 CloudCode 函数调用中的请求数量,以便我大致计算出免费服务允许的并发用户数?我知道您应该能够在 Analytics>Performance 图表中检查请求,但是根本没有数据通过(显然目前只有少数并发用户,但如果它只在以下情况下开始显示数据,那将毫无用处负载,而且我的应用程序的总请求似乎每天只在仪表板概览中更新一次)

我查看了定价常见问题解答,在 'What types of operations are counted as API requests?' 下提到:'Queries, saves, logins, amongst other kinds of operations will be taken into account..' 但我仍然无法确定什么将被视为请求,所以我想知道是否有人可以帮助我计算将在以下 afterSave 函数中计算的请求数...

Parse.Cloud.afterSave("Job", function(request){

var userSendingJob = request.user;
var job = request.object;
var areaId = job.get("areaId");
var description = job.get("description");
var jobFee = job.get("fee");

Parse.Cloud.useMasterKey();

var userQuery = new Parse.Query(Parse.User);

//if areaId is contained in in the user's array of areaIds it will return the object
userQuery.containedIn("areas", [areaId]);
userQuery.lessThanOrEqualTo("workingFee", jobFee);
userQuery.find({
    success:function(results){
        for (var i = 0; i < results.length; i++) {
            var user = results[i];
            var relation = user.relation("jobs");
            relation.add(job);
            user.save();
        }

        response.success("all users have been updated with job"+results.length);
    },
    error:function(err){
        response.error("error updating users: "+err);
    }
});

因此,如果仅计算此处提出的请求,我是否需要将 job.get("areaId")、job.get("description") 等算作单独的请求?我会为查询找到的每个内部用户计算 user.save() 吗?如果是这样,如果查询返回数百甚至数千个结果会怎样?

或者即使在查询响应的内循环中有大量保存,上面只是少数请求?

非常感谢。

肖恩

您对任何数据执行的每个 CURD 操作都将被计为一个请求。您通常可以对 Parse 数据执行的操作可以轻松映射到 CreateUpdateReadDelete 操作。

在您的 could 函数中,您的 find 查询被计为单个 Read 请求,无论它有多少个对象 returns。另外每一次 Save 操作都算作一次请求,所以你调用 save 的次数将被算作一次(批量更新期间的 Parse.Object.saveAll() 函数除外)最后, job.get() 不是一个服务器请求,因为它只是在请求对象上充当 getter(您不会去服务器读取任何内容)

您的函数中总共有 results.length + 1 个请求,因为您有一个查询和多个保存。请记住,调用云函数或作业也算作一次请求。