Javascript 云代码函数运行两次

Javascript 云代码函数运行两次,javascript,parse-platform,parse-cloud-code,Javascript,Parse Platform,Parse Cloud Code,我已经编写了一个运行良好的云函数 有时,同一用户会多次执行此功能(我确保客户端android应用程序只请求一个请求) 经过一些调试后,我注意到如果连接不好,就会出现这个问题。我可能是对的,也可能不是对的 如何克服这样的问题?在评论中,我也不相信客户端SDK会在坏连接上重复云函数调用。他们的预期行为是在客户端抛出一个与网络相关的异常,而不再调用它。如果云函数成功运行,而客户端仅无法返回结果,则会出现问题 我可以想到以下解决方案,而不需要更多关于云功能本身的细节: 尝试使函数幂等——这意味着即使它运

我已经编写了一个运行良好的云函数

有时,同一用户会多次执行此功能(我确保客户端android应用程序只请求一个请求)

经过一些调试后,我注意到如果连接不好,就会出现这个问题。我可能是对的,也可能不是对的


如何克服这样的问题?

在评论中,我也不相信客户端SDK会在坏连接上重复云函数调用。他们的预期行为是在客户端抛出一个与网络相关的异常,而不再调用它。如果云函数成功运行,而客户端仅无法返回结果,则会出现问题

我可以想到以下解决方案,而不需要更多关于云功能本身的细节:

  • 尝试使函数幂等——这意味着即使它运行两次,最终结果也是相同的,假设输入/参数相同

  • 缓存结果并手动调节功能-这更为复杂,仅当网络问题持续存在且您无法消除该功能的副作用时才需要。您必须创建另一个类来缓存函数的结果(可能由参数设置关键帧),并返回相同的结果,而不会产生任何计算和副作用


  • 你有多确定你的应用程序只调用一次你的函数?如果您的云功能失败(例如timedout),会发生什么情况?我100%肯定,因为它工作正常。然而,在低连接上,这个问题正在发生。我在想,如果这个问题与这样一个事实有关,即网络库实际上为我们发出的一个请求触发多个请求,那么在其中一个请求失败的情况下,另一个没有。你觉得怎么样@莫纳泽米认为网络图书馆不会因为一个请求而两次开火。顺便问一下,你从哪里调用云函数?iOS应用程序?