java - 在不稳定的网络上使用 google API

标签 java network-programming google-api google-calendar-api

我编写了一个管理应用程序,它具有将大量事件放入多个 Google 日历中的功能。

在我的电脑上一切正常。但该应用程序的主要用户的网络连接非常糟糕。更具体地说,对不同服务器的 ping 变化在 23 毫秒到 2000 毫秒之间,并且数据包会丢失。

我的方法是,除了增加超时之外,还为每个 API 调用使用自己的线程,并在出现连接错误时调用。

此时我陷入了困境。现在每个事件都已创建。不幸的是不是一次但至少一次。因此有些事件被多次上传。

我已经尝试将它们分组为批量请求,但 Google 不希望在单个批量请求中处理多个日历上的事件。

我希望我的情况很清楚,并且有人可以为我提供解决方案。

最佳答案

我会首先尝试说服“主要用户”获得更好的网络连接。

如果这是不可能的,我会更改代码以具有以下逻辑:

  // Current version
  createEvent(parameters)

  // New version
  while (queryEvent(parameters) -> no event) {
      createEvent(parameters)
  }

具有适当的超时和重试计数器。这个想法是实现一些额外的逻辑,以使日历中事件的创建具有幂等性。 (这可能需要在客户端为每个事件生成唯一标识符,以便您可以可靠地查询事件。)

关于java - 在不稳定的网络上使用 google API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561223/

相关文章:

Java MySQL 异常 - 找不到合适的驱动程序

java - 使用 JAX-WS Maven 插件 (wsimport) 检查 Web 服务中的异常层次结构

c++ - 如何使 TCP 套接字与 SO_BINDTODEVICE 一起工作(针对路由表)

linux-kernel - 内核 qdiscs 模块中的网络数据包缓冲

android - Google Maps API V2 日常使用

php - 客户端无权使用此方法检索访问 token - Google calendar php api

node.js - 如何解决使用服务帐户上传时 Google Drive 存储空间超出的问题

java - 如何将参数传递给 ScheduledMethodRunnable 方法

java - JAVA 组织对象数组列表

c - 我如何在终端中查看 fork() 生成的进程的输出