This commit is contained in:
han0
2024-05-29 10:21:31 +08:00
commit 54ac29d27b
119 changed files with 6817 additions and 0 deletions

View File

View File

@@ -0,0 +1,32 @@
import json
import traceback
from nc_http.core import Response
from api.blueprint import data
from commons.constants.material_task import MaterialTaskStatus
from commons.models.material_task import MaterialTask
from commons.services.data import DataService
from core.extensions import siwa
@data.route('/task/<int:task_id>/refresh', methods=['GET'])
@siwa.doc(tags=[""], summary='')
def refresh_task(task_id):
with MaterialTask.atomic() as session:
data = MaterialTask.get_by_id(task_id, session)
if not data:
pass
data.status = MaterialTaskStatus.DOING
session.flush()
try:
content = DataService.get_content(type=data.type)
data.content = json.dumps(content, ensure_ascii=False)
data.status = MaterialTaskStatus.DONE
session.flush()
except Exception as e:
traceback.print_exc()
data.status = MaterialTaskStatus.FAILED
session.flush()
return Response()

View File

@@ -0,0 +1,53 @@
import json
import os
from logging import getLogger
import requests
from flask import request, send_file
from nc_http.core import Response
from nc_http.core.request.func import get_client_ip, get_request_json
import config
from api.blueprint import root
from commons import meta
from tasks import once
LOGGER = getLogger('root')
@root.route('')
def root_check():
# 测试服务是否启动
return 'ok'
@root.route('/ip')
def get_ip():
# 获取客户端 ip
ip = get_client_ip(request)
return Response(ip)
@root.route('/debug/c', methods=['POST'])
def test_es():
data = get_request_json()
url = "{}/one-map-data/_search".format(config.ES_HOSTS)
headers = {'Content-Type': 'application/json'}
result = requests.post(url, json.dumps(data), headers=headers)
return Response(json.loads(result.content))
@root.route('/debug/run_once/<string:task_name>', methods=['GET'])
def run_once_task(task_name):
if not config.DEBUG:
raise meta.NO_CONTENT
task = getattr(once, task_name)
return Response(task())
@root.route('/logs', methods=['GET'])
def download_log_file():
log_file = os.path.join(config.LOG_DIR, 'app.log')
return send_file(log_file, as_attachment=True, download_name='geological-map-api.log', mimetype='text/plain')