在不稳定的网络上使用Google API

时间:2016-01-01 23:47:48

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

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

在我的电脑上一切正常。但是这个应用程序的主要用户有一个非常糟糕的网络连接。更为明智的是,对不同服务器的ping在23ms之间变化,如同2000ms,数据包丢失。

除了增加时间外,我的方法是为每个API调用使用自己的线程,并在发生连接错误时调用。

此时我卡住了。现在每个事件都已创建。不幸的是不是一次,而是至少一次。所以有些活动上传了很多次。

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

我希望我的情况很明确,有人可以为我解决问题。

1 个答案:

答案 0 :(得分:1)

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

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

  // Current version
  createEvent(parameters)

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

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