time_task_for_test.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. from concurrent.futures import ThreadPoolExecutor
  2. import requests
  3. import datetime
  4. import json
  5. import pandas as pd
  6. from sqlalchemy import create_engine
  7. import uuid
  8. import traceback
  9. db_con_str = "mysql+pymysql://%s:%s@%s:%d/%s" % ("data", "hcst@2021", "139.186.27.96", 4000, "jeecg-boot")
  10. engine = create_engine(db_con_str, connect_args={'charset': 'utf8'})
  11. def send_request(account_id):
  12. # url = 'http://139.186.27.96:31012/ai_check_and_up_to_full_creative'
  13. # url = 'http://139.186.27.96:31012/ai_up_creative_by_hour'
  14. url = 'http://192.168.0.111:31012/ai_up_creative_by_hour'
  15. try:
  16. request_data = json.dumps({"account_id": account_id})
  17. request = requests.post(url, request_data)
  18. return json.loads(request.text)
  19. except Exception:
  20. return "account_id = %s, request = %s, traceback = %s " % (account_id, request, traceback.format_exc())
  21. # 0、 打印该定时任务被调用的时间
  22. unique_uuid = str(uuid.uuid4())
  23. print("***********", "Test-Start, unique_uuid = ", unique_uuid, datetime.datetime.now(), "**************")
  24. # 1、获取已有的账号
  25. sql = """
  26. select account_id from ctop_ai_kuaishou_advertiser_strategy where status = 1
  27. """
  28. acc_df = pd.read_sql(sql, engine)
  29. acc_list = [int(account_id) for account_id in acc_df['account_id'].unique()]
  30. print(acc_list)
  31. # 手淘账号: 9792538 登陆账号: 16525841725 密码:a123456
  32. # 233账号: 9864909 登陆账号: jy20201254@163.com 密码:jysz12345
  33. # 消消消账号: 6020747 登陆账号: 15715158532 密码:xxx@112233
  34. # 斗地主账号:8067888 登陆账号: 13699377642 密码:yg@12345
  35. # TODO acc_list = [6089781] -- reponse 200 原因查询
  36. # TODO 每一个video拼参数需要3秒,打印每个函数的执行时间
  37. acc_list = [6089781]
  38. acc_list = [9838554]
  39. # 2、 5个账户一组进行发送请求
  40. batch_num = 5
  41. for i in range(0, len(acc_list), batch_num):
  42. if i + batch_num < len(acc_list):
  43. print(datetime.datetime.now(), tuple(acc_list[i:i+batch_num]))
  44. with ThreadPoolExecutor(max_workers=batch_num) as pool:
  45. results = pool.map(send_request, tuple(acc_list[i: i+batch_num]))
  46. for r in results:
  47. print('res = %s' % r)
  48. else:
  49. with ThreadPoolExecutor(max_workers=batch_num) as pool:
  50. print(datetime.datetime.now(), acc_list[i: len(acc_list)])
  51. results = pool.map(send_request, tuple(acc_list[i: len(acc_list)]))
  52. for r in results:
  53. print('res = %s' % r)
  54. # 3、 打印该定时任务结束的时间
  55. print("***********", "Test-End, unique_uuid = ", unique_uuid, datetime.datetime.now(), "**************")