对zk锁的常用操作

# !/user/bin/env python
# -*- coding: utf-8 -*-


import json
import time
import logging
import datetime
import constants
from kazoo.client import KazooClient
from kazoo.client import KazooState

logging.basicConfig()
def md5(str_param):
    """
    md5
    Args:
        str_param:

    Returns:

    """
    import hashlib
    m = hashlib.md5()
    m.update(str_param)
    return m.hexdigest()  # md5加密

class ZookeeperChecker(object):

    def __init__(self):
        self.zk = KazooClient(hosts=zkHosts)
        self.zk.start()
    
    def zk_stop(self):
        time.sleep(2)
        self.zk.stop()

    def zk_create(self, path, value=""):
        self.zk.create(path, value)

    def zk_delete(self, path):
        self.zk.delete(path)

    def zk_get(self, path, watch=None):
        value = self.zk.get(path, watch)
        return value

    def zk_set(self, path, value, version=-1):
        return self.zk.set(path, value, version)

    def zk_get_children(self, path, watch=None, include_data=False):
        children = self.zk.get_children(path, watch, include_data)
        return children

    def register_task(self, path, node, value):
        try:
            self.zk.ensure_path(path)
            self.zk_create(node, value)
            return True
        except Exception as err:
            print err
            return False

    def check_task_exists(self, path, watch=None):
        return self.zk.exists(path, watch)

   

 

你可能感兴趣的:(python,BDWORK)