云代码函数运行两次

2023-12-29

我写了一个运行良好的云函数。

有时,同一用户会多次执行此函数(我确保客户端 Android 应用程序只请求一个请求)。

经过一些调试后,我注意到如果连接不良就会出现此问题。我可能是正确的,也可能不正确。

如何克服这样的问题?


正如评论中所述,我也不相信客户端 SDK 会在连接不良时重复 Cloud Function 调用。他们的预期行为是在客户端抛出与网络相关的异常,并且不再调用它。如果云函数运行成功,客户端却无法取回结果,就会出现问题。

我可以想到以下解决方案,但没有更多关于云功能本身的细节:

  1. 尝试使函数幂等- 意味着即使运行两次,假设输入/参数相同,最终结果也是相同的。

  2. 缓存结果并手动限制该功能- 这比较复杂,只有在网络问题仍然存在并且您无法消除该功能的副作用时才需要。您必须创建另一个类来缓存函数的结果(可能由参数键入)并返回相同的结果,没有计算和副作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

云代码函数运行两次 的相关文章

随机推荐

  • 如何找到数据列表的最佳拟合分布函数?

    我知道 Python 内置了许多概率函数 其中random module 我想知道 给定一个浮点数列表 是否有可能找到最适合该列表的分布方程 我不知道 numpy 是否这样做 但是这个函数可以与 Excel 的 趋势 函数进行比较 不相等
  • 如何在Eclipse中使用Tomcat 8?

    编辑 2014 02 07 Eclipse Luna 现已推出 并且捆绑的 WTP 中包含对 Tomcat 8 的支持 快乐的日子 Tomcat 8 仍在开发中 但您可以获得它here https repository apache org
  • 为什么 Fiddler 会破坏我网站的重定向?

    为什么使用 Fiddler 有时会在页面转换时破坏我的网站 服务器端重定向之后 在 http 响应中 如 Fiddler 中所示 我得到以下信息 物体移动 对象转移到了这里 该站点是 ASP NET 1 1 VB NET 1 1 原文如此
  • 为什么使用“数据”和“公式”关键字参数时顺序很重要?

    In R 为什么顺序是data and formula绘图时关键字很重要吗 我以为与命名参数 order isn t应该很重要 有关我的意思的示例 请查看以下代码 library MASS data menarche Correct for
  • Android ADB命令获取设备属性

    我正在尝试从 ADB 命令获取设备属性 我如何通过运行示例 Android 应用程序来获取这些值 我多么希望使用 adb shell 命令本身来让我的生活更轻松 这是我完成示例应用程序的方法 但我想要相应的 adb 命令 设备制造商 设备硬
  • Android 模拟器中的应用程序错误问题“出现网络错误”

    添加平台 android 后 我在 android 上运行 ionic 应用程序 我通过它运行 ionic emulate android l c 我不明白为什么会这样 它的 android 清单文件是
  • 如何使用 Windows Phone 8 连接到已托管在服务器上的 SQL Server 数据库

    由于我在 Windows Phone 8 开发方面不太熟练 我想讨论 询问将我的 Windows Phone 8 连接到 SQL Server 数据库的最佳方法是什么 我不想使用 Azure 因为我已经有了数据库存在于用于网站的服务器上 请
  • 在 C# 中将时间转换为格式化字符串

    Time ToString 0 0 显示为十进制 1 5 而不是 1 30 如何让它以时间格式显示 private void xTripSeventyMilesRadioButton CheckedChanged object sender
  • 无法通过 tor ConnectionRefusedError 发出 python 请求:[WinError 10061]

    我试图通过 tor 使用 python 请求发出请求 但收到错误 ConnectionRefusedError WinError 10061 无法建立连接 因为目标计算机主动拒绝它 这是我正在使用的代码 import requests de
  • 长 iPhone 应用程序名称将显示在多行中

    我的应用程序名称长度为 17 个字符 当安装在设备上时 它看起来像应用程序 名称 有没有办法在多行上显示应用程序名称 请帮忙 不 你不能 我认为 iPad 支持 15 个字符来完整显示应用程序名称 iPhone 支持 14 个字符 iPho
  • Matplotlib:光标捕捉到带有日期时间轴的绘制数据

    我有一个由 3 个数据集组成的图 其中 x 轴上有日期时间对象 我想要一个可以捕捉数据并显示精确的 x 和 y 值的光标 我已经有一个 捕捉光标 但这只适用于标量 x 轴 谁能帮我修改捕捉光标 使其也适用于日期时间 x 轴 Here are
  • 计算appwidget的高度

    我无法通过谷歌搜索这个问题找出或找到解决方案 我有一个带有 appwidget 的 Android 应用程序 看起来像http www livescorewidget eu img screendumps widget png http w
  • 具有外部域注册商的 Route 53?

    我创建了一个 Route 53 托管区域 其中包含 SOA NS 记录和 A 记录 A 记录指向我在 AWS 上托管的 Web 实例 在注册商上 我需要使用什么才能让域使用 Amazon Route 53 仅仅是名称服务器吗 或者我需要 A
  • 创建事件是否是将 XF OnAppearing 变成异步方法的有效方法?

    我最近看到了关于如何将应用程序 OnStart 变成异步 OnStart 的建议 protected override void OnStart this started onStarted Subscribe to event start
  • 创建配置节处理程序时出错

    我有一个 dot NET 4 0 Web 应用程序 定义了自定义部分
  • 具有单行 TabPanel 和溢出面板的 TabControl

    我想将 WPF TabControl 的功能更改为仅生成一行 并为每个其他项目 如 ToolBar ToolBarOverflowPanel 创建一个溢出弹出窗口 目前 VisualStudio 中选项卡的显示方式相同 这就是我得到的
  • Swift 3 GCD 锁定变量和 block_and_release 错误

    我正在使用 Swift 3 GCD 来在我的代码中执行一些操作 但我越来越 dispatch call block and release经常出错 我想这个错误背后的原因是因为不同的线程修改相同的变量 但我不知道如何解决问题 这是我的代码和
  • 从参数化测试访问夹具(例如,capsys)

    我在参数化测试中访问固定装置 在本例中为 capsys 时遇到问题 目前我正在使用一个虚拟夹具来完成这项工作 import pytest pytest fixture def params request from collections
  • 如何在 Swift 中从文件(而不是整个文件)读取数据块

    假设我有一个 8 字节长的文件 仅包含 ASCII 字符 brownfox 我不想加载 2 个字节的块 而不是加载整个文件并处理 if UInt8 并对 2 字节大小的块进行操作 因此操作如下 load br从文件 和not整个文件 对数据
  • 云代码函数运行两次

    我写了一个运行良好的云函数 有时 同一用户会多次执行此函数 我确保客户端 Android 应用程序只请求一个请求 经过一些调试后 我注意到如果连接不良就会出现此问题 我可能是正确的 也可能不正确 如何克服这样的问题 正如评论中所述 我也不相