def tasker(self):
node_configs_1=[{'sql':'SELECT ID FROM NODES WHERE topics >= 8000;','sleep_time':5,'between_time':900,'time_log':'8000_node','queue_name':'node1'},
{'sql':'SELECT ID FROM NODES WHERE topics BETWEEN 3000 AND 8000;','sleep_time':10,'between_time':1800,'time_log':'4000_node','queue_name':'node2'},
{'sql':'SELECT ID FROM NODES WHERE topics BETWEEN 1000 AND 3000;','sleep_time':20,'between_time':7200,'time_log':'1000_node','queue_name':'node3'},
{'sql':'SELECT ID FROM NODES WHERE topics BETWEEN 100 AND 1000;','sleep_time':90,'between_time':86400,'time_log':'500_node','queue_name':'node4'},
{'sql':'SELECT ID FROM NODES WHERE topics BETWEEN 1 AND 100;','sleep_time':90,'between_time':86400,'time_log':'0_node','queue_name':'node5'}]
node_configs_2=[{'sql':'SELECT ID FROM NODES WHERE topics >= 8000;','sleep_time':5,'between_time':1800,'time_log':'8000_node','queue_name':'node1'},
{'sql':'SELECT ID FROM NODES WHERE topics BETWEEN 3000 AND 8000;','sleep_time':10,'between_time':3600,'time_log':'4000_node','queue_name':'node2'},
{'sql':'SELECT ID FROM NODES WHERE topics BETWEEN 1000 AND 3000;','sleep_time':20,'between_time':14400,'time_log':'1000_node','queue_name':'node3'},
{'sql':'SELECT ID FROM NODES WHERE topics BETWEEN 100 AND 1000;','sleep_time':90,'between_time':86400,'time_log':'500_node','queue_name':'node4'},
{'sql':'SELECT ID FROM NODES WHERE topics BETWEEN 1 AND 100;','sleep_time':90,'between_time':86400,'time_log':'0_node','queue_name':'node5'}]
time.tzname=('CST', 'CST')
if int(time.strftime('%H')) >= 8 or int(time.strftime('%H')) < 2:
node_configs=node_configs_1
else:
node_configs=node_configs_2
for node_config in node_configs:
sql=node_config['sql']
sleep_time=node_config['sleep_time']
between_time=node_config['between_time']
time_log_name=node_config['time_log']
queue_name=node_config['queue_name']
q_node=Queue(queue_name,connection=self.redis_conn)
if int(time.time()) - int(self.time_log[time_log_name]) >= between_time:
logging.info('start enqueue, queue name: %s' % queue_name)
self.SQ.cursor.execute(sql)
node_ids=self.SQ.cursor.fetchall()
for node_id in node_ids:
node_id=node_id[0]
if queue_name not in ['node4','node5'] or (queue_name in ['node4','node5'] and node_id in self.node_number):
if queue_name in ['node4','node5']:
self.node_number.remove(int(node_id))
q_node.enqueue(node_spider.start,node_id,sleep_time)
self.time_log[time_log_name]=str(int(time.time()))
return
评论列表
文章目录