我正在使用InterProcessSemaphoreMutex
curator recipe来确保我的申请流程始终是单身人士。由于瞬态网络错误或应用程序暂停(例如,因为GC),互斥锁有时会丢失。
我正在使用重试策略,以便进程可以尝试重新获取锁。我希望我的申请流程在5分钟内无法重新获得锁定时退出。
该配方的文档表明我们可以侦听ConnectStateChange事件。指示与zookeeper的连接的事件LOST已丢失,因此进程也丢失了锁。 这样,该过程可以检测它是否失去锁定。
该过程如何检查重新获取锁定是否成功?我无法在互斥锁上找到任何可以提供此信息的方法。可疑的有用的是#AcquiredInThisProcess"方法并没有真正给我这些信息。
答案 0 :(得分:0)
我不确定retryPolicy是什么意思,一些策展人对象有一个重试策略(例如DistributedAtomicLong)。
我不知道你如何在 declare -A weapons=(
['Straight Sword']=75
['Tainted Dagger']=54
['Imperial Sword']=90
['Edged Shuriken']=25
)
print_weapons() {
local -n array=$1
for i in "${!array[@]}"; do
printf "%s\t%d\n" "$i" "${array[i]}"
done
}
print_weapons weapons
中使用它,但是InterProcessSemaphoreMutex有一个InterProcessSemaphoreMutex
方法,用5分钟就不能解决你的问题?