예제 #1
0
파일: expired.py 프로젝트: bright-pan/ec2
def handler(ctrl, message):
    _name = message.get('db', 'default')
    _ns = API.ns_of( message['table'], message['pid'])
    
    src = API.db(_name)
    rs = src.select_from(message['table'], message['pid'])

    if  not rs: return -1
    
    if  not rs.get('queue',None)    or \
        not rs.get('timeout', None) or \
        not rs.get('cron_handler', None) or \
        not rs.get('retry', None):
        src.delete_from( message['table'], message['pid'] )
        return -2

    _retry = src.redis().hincrby( _ns , 'retry', -1)
    if  _retry<1 :
        src.delete_from( message['table'], message['pid'] )
        return -1

    API.expire(message, rs['timeout'])
    API.queue_push( rs['queue'], {
        'pid':      message['pid'],
        'table':    message['table'],
        'handler':  rs['cron_handler'],
    })
예제 #2
0
파일: proxylist.py 프로젝트: Big-Data/ec2
def _init_proxy(k,conf):
    db.update_table('cron:proxylist', k, misc.apply({
        'pid':  k,
        'table':        'conf:cron:proxylist',
        'retry':        3, #24*6*30*12
    },conf))

    API.expire({
        'pid':      k,
        'table':    'cron:proxylist',
    },5)    
예제 #3
0
파일: proxylist.py 프로젝트: Big-Data/ec2
def _init_check():
    db.update_table('cron:proxylist', 'checkurl', {
        'pid':      'checkurl',
        'table':    'conf:cron:proxylist',
        'retry':    3, #24*6*30*12
        'timeout':  10,
    
        'queue':    'queue:cron',
        'cron_handler': 'proxylist.on_checkurls',
    })
    API.expire({
        'pid':      'checkurl',
        'table':    'cron:proxylist',
    },5)    
예제 #4
0
def init():
    db.update_table('conf:cron', 'test', {
        'pid':      'test',
        'table':    'conf:cron',
        'queue':    'queue:cron',
        #'handler':  'expired.handler',     #no need
        'cron_handler': 'cron.dump',
        'retry':    20,
        'timeout':  5,
    })
    

    API.expire({
        'pid':      'test',
        'table':    'conf:cron',
    },5)    
예제 #5
0
파일: cache.py 프로젝트: Big-Data/ec2
 def _expire(self, v, timeout=None):
     vv = misc.makelist(v)
     timeout = timeout or self._timeout
     API.expire( map(self._cache_info,vv), timeout=timeout)
예제 #6
0
 def _expire(self, v, timeout=None):
     vv = misc.makelist(v)
     timeout = timeout or self._timeout
     API.expire(map(self._cache_info, vv), timeout=timeout)