1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import random
- import os
- import logging
- import json
- import time
- import traceback
- import ast
- from gevent import monkey, pool
- monkey.patch_all()
- from flask import Flask, request
- from log import Log
- from config import set_config
- from ad_predict import get_creative_id_with_thompson
- app = Flask(__name__)
- log_ = Log()
- config_ = set_config()
- gevent_pool = pool.Pool(100)
- # log_.info(f"server start...")
- @app.route('/healthcheck')
- def health_check():
- return 'ok!'
- @app.route('/ad/predict/getCreativeId', methods=['GET', 'POST'])
- def get_creative_id():
- start_time = time.time()
- try:
- request_data = json.loads(request.get_data())
- mid = request_data.get('mid')
- creative_id_list = request_data.get('creativeIdList')
- thompson_result = get_creative_id_with_thompson(mid=mid, creative_id_list=creative_id_list, gevent_pool=gevent_pool)
- result = {'code': 200, 'message': 'success', 'data': {'mid': mid, 'creativeId': thompson_result['creative_id']}}
- log_message = {
- 'requestUri': '/ad/predict/getCreativeId',
- 'logTimestamp': int(time.time() * 1000),
- 'requestData': request_data,
- 'thompsonResult': thompson_result,
- 'result': result,
- 'executeTime': (time.time() - start_time) * 1000
- }
- log_.info(log_message)
- return json.dumps(result)
- except Exception as e:
- log_.error(traceback.format_exc())
- result = {'code': -1, 'message': 'fail'}
- return json.dumps(result)
- if __name__ == '__main__':
- app.run()
|