我编写了一个管理应用程序,它具有将大量事件放在多个Google日历中的功能。
在我的电脑上一切正常。但是这个应用程序的主要用户有一个非常糟糕的网络连接。更为明智的是,对不同服务器的ping在23ms之间变化,如同2000ms,数据包丢失。
除了增加时间外,我的方法是为每个API调用使用自己的线程,并在发生连接错误时调用。
此时我卡住了。现在每个事件都已创建。不幸的是不是一次,而是至少一次。所以有些活动上传了很多次。
我已经尝试将它们分组为批量请求,但谷歌不希望在单个批量请求中的多个日历上发生事件。
我希望我的情况很明确,有人可以为我解决问题。
答案 0 :(得分:1)
我首先会尝试说服“主要用户”以获得更好的网络连接。
如果这是不可能的,我会将代码更改为具有以下逻辑:
// Current version
createEvent(parameters)
// New version
while (queryEvent(parameters) -> no event) {
createEvent(parameters)
}
具有适当的超时和重试计数器。这个想法是实现一些额外的逻辑,使日历中的事件的创建是幂等的。 (这可能需要在客户端为每个事件生成唯一标识符,以便您可以可靠地查询事件。)