Пример #1
0
    def run(self):
        '''
        Start process, the subclass must rewrite this function or 'handle' function
        when all the father processes quits, then break to quit
        '''

        if self.log:
            self.log = Log(self.name, toFile="plugin")
            self.log.info("plugin {0} start, ins:{1}, outs:{2}".format(
                self.name, self._ins, self._outs))
        else:
            self.log = False

        while True:
            try:
                data = self.get()
                #print "debug:", "plugin ", self.name, "getting", "ins<<<<<<<<", [str(x) for x in self._ins]
            except QueueEmpty:
                continue
            except IOError:
                break
            except EOFError:
                break
            except PluginExit:
                self.quit()
                #print "debug:", "plugin ", self.name, "quit"
                if self.log:
                    self.log.info("plugin {0} quit".format(self.name))
                break
            else:
                #print "debug:", "plugin ", self.name, "got", data
                self.handle(data)
            finally:
                time.sleep(self.timeout)
Пример #2
0
'''
For get Shardid from etcd
'''
from config import Log
from config import base_config
from urllib.parse import urljoin
from os import path
import requests
import json
import re
from multiprocessing import Pool

Log = Log()


class Etcd():
    def __init__(self, project_config):
        config = base_config(project_config)
        self.etcd_host = config.get('ETCD_HOST')
        self.etcd_root = config.get('ETCD_ROOT')

    def get_data(self, multi=1):
        base_url = urljoin(self.etcd_host,
                           path.join('v2/keys', self.etcd_root.strip('/')))
        Log.debug('baseUrl: %s' % base_url)
        try:
            root_all = []
            sub_keys = json.loads(requests.get(base_url).content)
            m_parten = '%s/[0-9]{1,3}$' % self.etcd_root
            for each_keys in sub_keys['node']['nodes']:
                rst = self.mul_gid(m_parten, each_keys, multi=multi)