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'], })
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)
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)
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)
def _expire(self, v, timeout=None): vv = misc.makelist(v) timeout = timeout or self._timeout API.expire( map(self._cache_info,vv), timeout=timeout)
def _expire(self, v, timeout=None): vv = misc.makelist(v) timeout = timeout or self._timeout API.expire(map(self._cache_info, vv), timeout=timeout)