google drive并发操作会触发一次更换多个sa
gclone sync 时使用参数--transfers=6(默认是4),此时会有6个文件并发sync操作,当一个SA的750G用完时,6个并发中可能会有多个触发userRateLimitExceeded,此时SA会更换多个。 不过看代码https://github.com/donwa/gclone/blob/f764d2a143de35d4f7be4fad58e8139162f525c2/backend/drive/drive.go#L650 当ServiceAccountFiles用完时会重新读入,应该能重试到所有SA文件。
不管多少并发,都是同时用一个sa的。另外我加了锁的。
rclone同时会开启多个transfers,比如4个transfers同时在用SA1,4个transfers分别拷贝4个10G的文件,第一个文件10G拷贝完成此时SA1的750G刚好用完,剩下3个transfers都会返回userRateLimitExceeded,此时 https://github.com/donwa/gclone/blob/f764d2a143de35d4f7be4fad58e8139162f525c2/backend/drive/drive.go#L610 方法会被调用3次,切换3个SA,虽然每个changeSvc被独立加锁。
有道理。晚点看看影响大不大。本来我是加了个队列的,后来感觉代码太复杂,怕逻辑问题,又被我删除了。
问题不大 SA用完最后还是会重读一遍。强迫症会比较难受