我编写了一个管理应用程序,该应用程序具有将一堆事件放入多个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/