# -*- coding: utf-8 -*- from ops.mmysql import MysqlBase import logging from multiprocessing import Pool, cpu_count import datetime from real_task.tasks_base_real import * from config.config_real import * import sys from ops.plog import define_logger define_logger("/data/logs/data_collect_real.log") log = logging.getLogger(__name__) def get_event(): sql = f"""SELECT gameid,channelid,method_name FROM methods WHERE in_used=1""" db = MysqlBase(**DB) data = db.query(sql) events = [] if data: for line in data: if line: events.append(line) return events def run_tasks(): # args = get_event() args = ((1004, 6001, 'user'), (1016, 6001, 'share')) pool = Pool(processes=cpu_count()) pool.map(simple_work, args) pool.close() pool.join() class CollectGameData(): def __init__(self, times, b_time, e_time): self.times = times self.b_time = b_time self.e_time = e_time def workflow(self, line): kwargs = {} kwargs['gameid'], kwargs['channelid'], kwargs['event_type'] = line kwargs['date'] = self.times kwargs['b_time'] = self.b_time kwargs['e_time'] = self.e_time #print(f"1 {kwargs}") func = f"real_event_{kwargs['event_type']}(kwargs)" log.info(f"run {func} kwargs={kwargs}!") eval(func) def simple_work(line): times = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d') b_time = (datetime.datetime.now() - datetime.timedelta(minutes=120)).strftime('%Y-%m-%d %H:%M:%S') e_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') cc = CollectGameData(times, b_time, e_time) cc.workflow(line) if __name__ == "__main__": run_tasks() # times = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d') # b_time = (datetime.datetime.now() - datetime.timedelta(minutes=120)).strftime('%Y-%m-%d %H:%M:%S') # e_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # for item in ((1004, 6001, 'user'), (1016, 6001, 'share')): # cc = CollectGameData(times, b_time, e_time) # cc.workflow()