mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 09:02:00 +00:00
zkutil: add remove with retries [#METR-16024]
This commit is contained in:
parent
be684446bd
commit
8d0e842dde
@ -100,6 +100,11 @@ public:
|
||||
*/
|
||||
void remove(const std::string & path, int32_t version = -1);
|
||||
|
||||
/** Удаляет ноду. В случае сетевых ошибок пробует удалять повторно.
|
||||
* Ошибка ZNONODE для второй и последующих попыток игнорируется
|
||||
*/
|
||||
void removeWithRetries(const std::string & path, int32_t version = -1);
|
||||
|
||||
/** Не бросает исключение при следующих ошибках:
|
||||
* - Такой ноды нет.
|
||||
* - У ноды другая версия.
|
||||
|
@ -294,6 +294,15 @@ void ZooKeeper::remove(const std::string & path, int32_t version)
|
||||
check(tryRemove(path, version), path);
|
||||
}
|
||||
|
||||
void ZooKeeper::removeWithRetries(const std::string & path, int32_t version)
|
||||
{
|
||||
size_t attempt;
|
||||
int code = tryRemoveWithRetries(path, version, &attempt);
|
||||
|
||||
if (!(code == ZOK || (code == ZNONODE && attempt > 0)))
|
||||
throw KeeperException(code, path);
|
||||
}
|
||||
|
||||
int32_t ZooKeeper::tryRemove(const std::string & path, int32_t version)
|
||||
{
|
||||
int32_t code = removeImpl(path, version);
|
||||
|
Loading…
Reference in New Issue
Block a user