javascript - 多次调用云代码函数

标签 javascript java android parse-platform parse-cloud-code

我不确定为什么每次从客户端调用该云代码函数时,该函数都会被调用 5 次。

云代码-

Parse.Cloud.define('PushTest', function(request, response){
console.log('PushTest called');
var query = new Parse.Query(Parse.Installation);
query.equalTo("username", request.params.Username);
query.equalTo("device_type","main");

Parse.Push.send({
        where: query,
        data: {
            alert: "This is a test"
        }
    }, {
    useMasterKey: true,
    success: function() {
        //push was succesful
        console.log('Push Success');
    },
    error: function(error) {
        //handle error
        console.log('Push failure');
    }

    });
});

客户端代码 -

        String username = ParseUser.getCurrentUser().getUsername();
        HashMap<String, Object> params = new HashMap<String, Object>();
        params.put("Username", username);
        ParseCloud.callFunctionInBackground("PushTest", params, new FunctionCallback<Object>() {
            public void done(Object obj, ParseException e) {
                if (e == null) {
                    Log.d(TAG, "Parse cloud called");
                } else {
                    Log.d(TAG, "Parse cloud not called");
                    Log.d(TAG, e.getMessage());
                }
            }
        });

每次我从客户端调用该函数时,我都会收到五个推送通知,而不是一个。关于我做错了什么有什么想法吗?

最佳答案

也许客户端由于某些错误(超时?)重试 4(默认 maxRetries)次

要检查是否是这种情况,请设置日志级别(低于 info)并在 sdk 中查看日志。 https://parse.com/docs/android/api/com/parse/Parse.html#setLogLevel(int)

日志设置在第 230 行左右。

PLog.i("com.parse.ParseRequest", "请求失败。在尝试 # 之前等待 "+ 延迟 + "毫秒"+ (attemptsMade + 1));

https://github.com/ParsePlatform/Parse-SDK-Android/blob/master/Parse/src/main/java/com/parse/ParseRequest.java

如果显示此日志,您应该尽力避免该错误。

对于快速解决方案,可以通过rest api调用它,这不会自动重试。 (不确定是否可以在sdk之外更改重试次数)

如果没有显示日志,请尝试查看客户端的请求。

为此,您可以使用 charles-proxy,将您的设备代理设置为您的计算机。

要查看详细信息 (SSL),请在您的设备上下载凭据并在计算机上设置 SSL 代理设置。

之后,您可以查看从您的设备发送的请求数量。

然后尝试找出问题所在。

关于javascript - 多次调用云代码函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37062499/

相关文章:

java - 什么是协变返回类型?

适用于 Android 平板电脑的 JavaScript、CSS、HTML5 编辑器

Android - 使用 google maps api 动态更改标记的位置

javascript - 带有 ng-repeat 的动态 ng-model

java - 如何释放二维数组中的内存

javascript - 什么时候一个函数只能被调用一次?

java - 使用Java将数组替换并添加到两个数组中

android - 删除 SharedPreferences 文件

javascript - Jquery 使用正则表达式替换

javascript - 如何在包含动态元素的表中实现带有句点的书籍式索引?