| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | from concurrent.futures import ThreadPoolExecutorimport requestsimport datetimeimport jsonimport pandas as pdfrom sqlalchemy import create_enginedb_con_str = "mysql+pymysql://%s:%s@%s:%d/%s" % ("data", "hcst@2021", "139.186.27.96", 4000, "jeecg-boot")engine = create_engine(db_con_str, connect_args={'charset': 'utf8'})def send_request(account_id):    url = 'http://139.186.27.96:31018/ai_historical_missing_material'    request_data = json.dumps({"account_id": account_id})    request = requests.post(url, request_data)    return json.loads(request.text)# 0、 打印该定时任务被调用的时间print("*************************", datetime.datetime.now(), "*************************")# 1、获取已有的账号sql = """select account_id from ctop_ai_kuaishou_advertiser_strategy where status = 1"""acc_df = pd.read_sql(sql, engine)acc_list = [int(account_id) for account_id in acc_df['account_id'].unique()]print(acc_list)acc_list = [9864909, 9864904, 9864899, 9864893, 9864888, 9863696]# 2、 5个账户一组进行发送请求batch_num = 5for i in range(0, len(acc_list), batch_num):    if i + batch_num < len(acc_list):        print(tuple(acc_list[i:i + batch_num]))        with ThreadPoolExecutor(max_workers=batch_num) as pool:            results = pool.map(send_request, tuple(acc_list[i: i+batch_num]))            for r in results:                print('res = %s' % r)    else:        with ThreadPoolExecutor(max_workers=batch_num) as pool:            print(acc_list[i: len(acc_list)])            results = pool.map(send_request, tuple(acc_list[i: len(acc_list)]))            for r in results:                print('res = %s' % r)
 |