#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Aug 5 10:32:28 2020 @author: chencong """ import datetime import time import math import pandas as pd import numpy as np import hashlib import requests from apscheduler.schedulers.blocking import BlockingScheduler import pymysql import get_data_hourly def order_check(): db = pymysql.connect('rm-bp1c9cj79872tx3aaro.mysql.rds.aliyuncs.com','superc','Cc719199895','quchen_text') cursor = db.cursor() sql1 = 'select platform,count(1) from quchen_text.order where date=%s and platform!=%s group by platform' sql2 = 'select platform,count(1) from quchen_text.order_daily where date=%s and platform!=%s group by platform' t = int((time.time()+8*3600)//86400*86400-8*3600-86400) data = (t,'阳光') case1=0 case2=0 try: cursor.execute(sql1,data) db.commit() x=cursor.fetchall() print('access',x) except: db.rollback() print('defeat order') try: cursor.execute(sql2,data) db.commit() y=cursor.fetchall() print('access',y) except: db.rollback() print('defeat order_daily') if len(x)==len(y) : for i in range(len(x)): if x[i][1]y[i][1]: case2=1 elif len(x)>len(y) : case2=1 else: case1=1 return(case1,case2) def mysql_insert_order_daily(data): db = pymysql.connect('rm-bp1c9cj79872tx3aaro.mysql.rds.aliyuncs.com','superc','Cc719199895','quchen_text') cursor = db.cursor() time1 = time.time() sql = 'insert ignore into quchen_text.order_daily (amount,channel,channel_id,date,from_novel,order_id,order_time,platform,reg_time,stage,user_id) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);' try: cursor.executemany(sql,data) db.commit() cost_time =round((time.time()-time1)/60,1) print('insert_order access',len(data),'cost_minutes:',cost_time) except: db.rollback() print('insert_order defeat') def repair_order(): st_unix = int((time.time()+8*3600)//86400*86400-8*3600-86400) et_unix = int((time.time()+8*3600)//86400*86400-8*3600) #et_unix = et_unix - 1 st_dt = time.strftime("%Y-%m-%dT%H:%M:%S",time.localtime(st_unix))+'+08:00' et_dt = time.strftime("%Y-%m-%dT%H:%M:%S",time.localtime(et_unix))+'+08:00' (a,b)=order_check() print(a,b) if a==1 : get_data_hourly.mysql_insert_order(get_data_hourly.get_zhangdu_order(st_unix,et_unix)) get_data_hourly.mysql_insert_order(get_data_hourly.get_ysg_order(st_unix,et_unix)) get_data_hourly.mysql_insert_order(get_data_hourly.get_zzy_order(st_dt,et_dt)) get_data_hourly.mysql_insert_order(get_data_hourly.get_yuewen_order(st_unix,et_unix-1)) ##get_data_hourly.mysql_insert_order(get_data_hourly.get_yuewen_order(st_unix,et_unix)) get_data_hourly.mysql_insert_order(get_data_hourly.get_huasheng_order(st_unix,et_unix)) if b==1 : mysql_insert_order_daily(get_data_hourly.get_zhangdu_order(st_unix,et_unix)) mysql_insert_order_daily(get_data_hourly.get_ysg_order(st_unix,et_unix)) mysql_insert_order_daily(get_data_hourly.get_zzy_order(st_dt,et_dt)) mysql_insert_order_daily(get_data_hourly.get_yuewen_order(st_unix,et_unix-1)) #mysql_insert_order_daily(get_data_hourly.get_yuewen_order(st_unix,et_unix)) mysql_insert_order_daily(get_data_hourly.get_huasheng_order(st_unix,et_unix)) start_job_time = '2020-09-23 01:40:00' if __name__ == '__main__': scheduler = BlockingScheduler() scheduler.add_job(repair_order, 'interval',days=1,start_date=start_job_time) scheduler.start()