ck 4 年之前
父節點
當前提交
aca67d7130
共有 2 個文件被更改,包括 51 次插入20 次删除
  1. 20 19
      dgp/tests/get_data_hourly.py
  2. 31 1
      dgp/tests/util/date_util.py

+ 20 - 19
dgp/tests/get_data_hourly.py

@@ -180,7 +180,8 @@ def mysql_insert_daily_qq(data):
 
 
 
 
 
 
-def start_cost_job():
+def run():
+	print(f"run [{my_time}---------------]")
 	mysql_insert_daily_vx(get_daily_vx())
 	mysql_insert_daily_vx(get_daily_vx())
 	mysql_insert_daily_qq(get_daily_qq())
 	mysql_insert_daily_qq(get_daily_qq())
 
 
@@ -189,25 +190,25 @@ if __name__ == '__main__':
 	print("start_at ===================="+str(datetime.today())+"===================")
 	print("start_at ===================="+str(datetime.today())+"===================")
 	run_new=False
 	run_new=False
 	max_workers = 5
 	max_workers = 5
-	my_time = datetime.today().strftime('%Y-%m-%d')
+	# 无参数默认跑今天数据
-	# my_time = '2020-11-24'
+	if len(sys.argv)==1:
-	if sys.argv.__len__() == 2:
+		print("请输入日期")
-
+		exit(0)
-		if int(sys.argv[1])==2:
+	elif len(sys.argv)==2:
-			my_time=(datetime.today()-timedelta(days=1)).strftime('%Y-%m-%d')
+		my_time=sys.argv[1]
-			start_cost_job()
+		run()
-		if int(sys.argv[1])==3:
+	elif len(sys.argv)==3:
-			run_new = True
+		for i in  date_util.getDateLists(sys.argv[1],sys.argv[2]):
-			i = 1
+			my_time=i
-			while True:
+			run()
-				my_time=(datetime.today()-timedelta(days=i)).strftime('%Y-%m-%d')
+	elif len(sys.argv)==4:
-				print("run["+my_time+"]data")
+		run_new=True
-				start_cost_job()
+		for i in date_util.getDateLists(sys.argv[1], sys.argv[2]):
-				if i == 15:
+			my_time=i
-					break
+			run()
-				i+=1
 	else:
 	else:
-		start_cost_job()
+		print("输入参数过多")
+
 
 
 	"""调度逻辑
 	"""调度逻辑
 	1.每小时跑今天的
 	1.每小时跑今天的

+ 31 - 1
dgp/tests/util/date_util.py

@@ -26,12 +26,42 @@ __title__ = '操作时间的工具类'
 
 
 import datetime
 import datetime
 import time
 import time
-
+from datetime import timedelta
+from dateutil.relativedelta import relativedelta
 
 
 # ==========================
 # ==========================
 # ========== time ==========
 # ========== time ==========
 # ==========================
 # ==========================
 
 
+def getDateLists(begin, end):
+    """
+    返回一个时间列表
+    """
+    interval = getInterval(begin, end)
+    return [getLastDays(begin, -x) for x in range(interval + 1)]
+
+def getInterval(begin, end):
+    t1 = datetime.datetime(int(begin[0:4]), int(begin[5:7]), int(begin[8:10]))
+    t2 = datetime.datetime(int(end[0:4]), int(end[5:7]), int(end[8:10]))
+    return (t2 - t1).days
+
+def getLastDays( begin, interval):
+    """
+    :param begin:
+    :param interval: 正数是之前几天, 负数是之后几天
+    :return:
+    """
+    start =datetime.datetime(int(begin[0:4]), int(begin[5:7]), int(begin[8:10]))
+    delta = timedelta(days=1)
+    if interval < 0:
+        for _ in range(0, -interval):
+            start = start + delta
+    else:
+        for _ in range(0, interval):
+            start = start - delta
+    return start.strftime("%Y-%m-%d")
+
+
 def getLastMonthDay():
 def getLastMonthDay():
     """
     """
     获取上月第一天和最后一天
     获取上月第一天和最后一天