datacollect/tasks.py
2019-08-12 11:36:10 +08:00

70 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
from ops.mmysql import MysqlBase
import logging
from multiprocessing import Pool, cpu_count
import datetime
from mytask.tasks_1004 import *
from mytask.tasks_base import *
from mytask.tasks_1016 import *
from mytask.tasks_2001 import *
import config
import sys
log = logging.getLogger(__name__)
DB = {'user': 'mytga', 'pswd': 'gzVwh4HGR68G', 'host': '10.10.3.5', 'db': 'games_report'}
def run_tasks():
args = config.event_list
pool = Pool(processes=cpu_count())
pool.map(simple_work, args)
pool.close()
pool.join()
class CollectGameData():
def __init__(self, times):
self.times = times
def workflow(self, line):
kwargs = {}
kwargs['gameid'], kwargs['channelid'], kwargs['event_type'] = line
kwargs['date'] = self.times
func = f"run_event_{kwargs['event_type']}(kwargs)"
log.info(f"run {func} kwargs={kwargs}!")
eval(func)
def simple_work(line):
cc = CollectGameData()
cc.workflow(line)
#
# def get_args():
# get_event_args = f"""select gameid,channel,event_type in report_event where in_used=1"""
# mydb = MysqlBase(**DB)
# data = mydb.query(get_event_args)
# args = list()
# if data:
# for line in data:
# temp = {}
# try:
# temp['gameid'], temp['channel'], temp['event_type'] = line
# args.append(temp)
# except Exception:
# log.error(f"get args from {line} error !", exc_info=True)
# return args
if __name__ == "__main__":
# run_tasks()
try:
times = sys.argv[1]
except:
times = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d')
for line in config.event_list:
cc = CollectGameData(times)
cc.workflow(line)