我遇到了一种不同寻常的情况:
- 外部工具同时调用我的API的多个端点,
- 所有终端都依赖于S3上某处托管的相同配置文件.
这是可行的,但它会同时多次获取相同的配置文件,而实际上它只能获取一次.为了试验这一点,我在这里有一个最小版本https://go.dev/play/p/Nx-kidmprQx,它返回随机整数,而不是进行HTTP调用.
目前,它打印:
#2 start
#1 start
#1 result 5577006791947779410
#2 result 8674665223082153551
#3 start
#3 result 6129484611666145821
但我希望前两个调用返回相同的值,因为它们是并发完成的:
#2 start
#1 start
#1 result 5577006791947779410
#2 result 5577006791947779410
#3 start
#3 result 6129484611666145821
我正在努力想出解决这一问题的办法.多个大猩猩应该等待一个结果的事实令人困惑.怎么可能做到呢?