time_task_ai_high_quality_material_test.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. db_con_str = "mysql+pymysql://%s:%s@%s:%d/%s" % ("data", "hcst@2021", "139.186.27.96", 4000, "jeecg-boot")
  8. engine = create_engine(db_con_str, connect_args={'charset': 'utf8'})
  9. def send_request(account_id):
  10. url = 'http://192.168.1.193:31012/ai_high_quality_material'
  11. # url = 'http://139.186.27.96:31012/ai_high_quality_material'
  12. request_data = json.dumps({"account_id": account_id})
  13. request = requests.post(url, request_data)
  14. return json.loads(request.text)
  15. # 0、 打印该定时任务被调用的时间
  16. print("*************************", datetime.datetime.now(), "*************************")
  17. # 1、获取已有的账号
  18. sql = """
  19. select account_id from ctop_ai_kuaishou_advertiser_strategy where status = 1
  20. """
  21. acc_df = pd.read_sql(sql, engine)
  22. acc_list = [int(account_id) for account_id in acc_df['account_id'].unique()]
  23. print(acc_list)
  24. # 手淘账号: 9792538 登陆账号: 16525664317 密码:a123456
  25. # 233账号: 9864909 登陆账号: jy20201254@163.com 密码:jysz12345
  26. # 消消消账号: 6020747 登陆账号: 15715158532 密码:xxx@112233
  27. # 斗地主账号:8067888 登陆账号: 13699377642 密码:yg@12345
  28. acc_list = [9792538, 9864909, 6020747, 8067888]
  29. # acc_list = [9881494,9881495,9881496,9881497,9881498,9881499, 9881500,9881502,9881504,9881505,9881506,9881507]
  30. print(acc_list)
  31. # 2、 5个账户一组进行发送请求
  32. batch_num = 5
  33. for i in range(0, len(acc_list), batch_num):
  34. if i + batch_num < len(acc_list):
  35. print(tuple(acc_list[i:i + batch_num]))
  36. with ThreadPoolExecutor(max_workers=batch_num) as pool:
  37. results = pool.map(send_request, tuple(acc_list[i: i+batch_num]))
  38. for r in results:
  39. print('res = %s' % r)
  40. else:
  41. with ThreadPoolExecutor(max_workers=batch_num) as pool:
  42. print(acc_list[i: len(acc_list)])
  43. results = pool.map(send_request, tuple(acc_list[i: len(acc_list)]))
  44. for r in results:
  45. print('res = %s' % r)