2025-05-28 19:16:17 +08:00

64 lines
2.6 KiB
Python

import pymysql
import json
from api_request import ApiRequest
from param_options import option_experiment
from param_options import option_variable
import random
if __name__ == '__main__':
db = pymysql.connect(host='39.101.194.63', port=23306,
user='root', passwd='passok123A', db='jd_data', charset='utf8mb4')
cursor = db.cursor()
ar = ApiRequest()
times = 0
while times < 20:
# current_experiment = 'ssp5_8_5'
# current_variable = 'eastward_wind'
current_experiment = random.choice(option_experiment)
current_variable = random.choice(option_variable)
times += 1
print("Current combination: Experiment - %s, Variable - %s" % (current_variable, current_experiment))
sql_select = "SELECT id, experiment, variable, model, level " \
"FROM data_detail WHERE valid = 1 AND available IS null " \
"AND experiment = '%s' AND variable = '%s'" % (current_experiment, current_variable)
cursor.execute(sql_select)
result = cursor.fetchall()
total_num = len(result)
current_num = 0
for row in result:
current_num += 1
if current_num > 10:
break
row_id = row[0]
experiment = row[1]
variable = row[2]
model = row[3]
level = row[4]
print('[No %d/%d] %s, %s, %s, %s' % (current_num, total_num, row_id, experiment, variable, model))
param = {
'experiment': experiment,
'variable': variable,
'model': model,
'level': level
}
reply = ar.get_reply(param)
if reply:
remarks = json.dumps(reply)
location = ''
content_length = 0
if reply['state'] == 'completed':
location = reply['location']
content_length = reply['content_length']
sent_to_rmq_at = 'null'
if 'sent_to_rmq_at' in reply:
sent_to_rmq_at = "'" + reply['sent_to_rmq_at'].replace("T", " ").replace("Z", "") + "'"
print(reply)
sql_update = "UPDATE data_detail " \
"SET available = 1, url = '%s', data_size = %d, update_time = %s, remarks = '%s' " \
"WHERE id = %d" \
% (location, content_length, sent_to_rmq_at, remarks.replace("'", "\\'"), row_id)
cursor.execute(sql_update)
db.commit()
db.close()