From ff1a0f37e2d2cff96ed1c95c3c39d16c07fe4c93 Mon Sep 17 00:00:00 2001 From: pengtao Date: Wed, 4 Sep 2019 17:39:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=B0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cron/get_newuser_days.py | 66 +++++++++++++++++++ .../init_first_ad_channel.py | 0 2 files changed, 66 insertions(+) create mode 100644 cron/get_newuser_days.py rename init_first_ad_channel.py => cron/init_first_ad_channel.py (100%) diff --git a/cron/get_newuser_days.py b/cron/get_newuser_days.py new file mode 100644 index 0000000..116abbb --- /dev/null +++ b/cron/get_newuser_days.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +from ops.plog import define_logger +import logging +import sys +import datetime +from ops.mmysql import MysqlBase +import pdb + +define_logger("/data/logs/get_newusers_days.log") +log = logging.getLogger(__name__) + +DB = {'user': 'mytga', 'pswd': 'gzVwh4HGR68G', 'host': '10.10.3.5', 'db': 'games_report'} + +mydb = MysqlBase(**DB) +table_name = "new_users_days" + + +def get_data(times, gameid, channelid): + sql = f"""SELECT + count(accountid) AS users, + ad_channel + FROM + newuser + WHERE + gameid={gameid} + AND channelid={channelid} + AND date(register_time) ='{times}' + + GROUP BY + ad_channel;""" + out = mydb.query(sql) + data = [] + if out: + try: + for line in out: + temp = {} + temp['usernum'], temp['ad_channel'] = line + data.append(temp) + except Exception: + log.error(f"split {line} error!") + return data + + +def write2db(data, times, gameid, channelid): + for line in data: + line['date'] = times + line['key'] = f"{gameid}#{channelid}#{line['ad_channel']}" + try: + mydb.insert(table_name, line) + except Exception: + log.error(f" insert {line} to db failed", exc_info=True) + + +def main(): + if len(sys.argv) == 2: + times = sys.argv[1] + else: + times = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d') + gameid = 2001 + channelid = 6001 + data = get_data(times, gameid, channelid) + write2db(data, times, gameid, channelid) + + +if __name__ == "__main__": + main() diff --git a/init_first_ad_channel.py b/cron/init_first_ad_channel.py similarity index 100% rename from init_first_ad_channel.py rename to cron/init_first_ad_channel.py