123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- from model.DateUtils import DateUtils
- from app.api_data.tx_ad_cost import get_cost
- from app.etl.dw import dw_image_cost_day
- import time
- from model.DingTalkUtils import DingTalkUtils
- import logging
- from logging import handlers
- import multiprocessing
- du = DateUtils()
- def hourly_run():
- # 广告数据
- get_cost.hourly() # 广告相关消耗数据
- dw_image_cost_day.hourly()
- if __name__ == '__main__':
- logging.basicConfig(
- handlers=[
- logging.handlers.RotatingFileHandler('./log/ad_hourly.log',
- maxBytes=10 * 1024 * 1024,
- backupCount=5,
- encoding='utf-8')
- , logging.StreamHandler() # 供输出使用
- ],
- level=logging.INFO,
- format="%(asctime)s - %(levelname)s %(filename)s %(funcName)s %(lineno)s - %(message)s"
- )
- logging.info('广告素材任务,开始')
- st = time.time()
- hourly_process = multiprocessing.Process(target=hourly_run)
- hourly_process.daemon = True
- hourly_process.start()
- while 1:
- if time.time() - st > 3000:
- logging.info('进程运行超过50分钟,强制停止')
- break
- if not hourly_process.is_alive():
- break
- if int(time.time() - st) > 1500:
- DingTalkUtils().send(f"素材小时任务耗时{int(time.time() - st)}秒", phone="15168342316")
- logging.info('广告素材任务,结束')
|