lesscode-flask 0.1.62__tar.gz → 0.1.64__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/PKG-INFO +1 -1
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/__init__.py +1 -1
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/app.py +2 -1
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/setup/__init__.py +21 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/decorator/cache.py +4 -1
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/task/task_helper.py +22 -6
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/PKG-INFO +1 -1
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/README.md +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/db/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/db/datasource.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/db/executor.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/export_data/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/export_data/data_download_handler.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/log/access_log_handler.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/access_log.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/base_model.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/parameterized_query.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/resource_param_template.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/response_result.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/user.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/service/access_log_service.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/service/base_service.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/service/resource_param_template_service.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/setting/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/signals.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/static/swagger.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/decorator/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/decorator/swagger.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/file/file_exporter.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/file/file_utils.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/helpers.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/oss/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/redis/redis_helper.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/request/request.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/task/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/thread/thread_utils.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/wsgi.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/SOURCES.txt +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/dependency_links.txt +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/requires.txt +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/top_level.txt +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/clickhouse.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/elasticsearch.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/kingbase.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/mysql.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/query_runner/pg.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/settings/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/settings/helpers.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/utils/__init__.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/redash/utils/requests_session.py +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/setup.cfg +0 -0
- {lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/setup.py +0 -0
|
@@ -18,7 +18,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix
|
|
|
18
18
|
from lesscode_flask.model.response_result import ResponseResult
|
|
19
19
|
from lesscode_flask.setup import setup_blueprint, setup_logging, setup_query_runner, setup_swagger, setup_sql_alchemy, \
|
|
20
20
|
setup_redis, setup_login_manager, setup_resource_register, setup_data_download, setup_scheduler, \
|
|
21
|
-
setup_common_resource
|
|
21
|
+
setup_common_resource, setup_task
|
|
22
22
|
from lesscode_flask.signals import app_runed
|
|
23
23
|
from lesscode_flask.utils.helpers import inject_args, generate_uuid, app_config
|
|
24
24
|
from lesscode_flask.utils.json.NotSortJSONProvider import NotSortJSONProvider
|
|
@@ -151,6 +151,7 @@ class Lesscoder(Flask):
|
|
|
151
151
|
setup_resource_register(self)
|
|
152
152
|
setup_data_download(self)
|
|
153
153
|
setup_scheduler(self)
|
|
154
|
+
setup_task(self)
|
|
154
155
|
|
|
155
156
|
# setup_static(self)
|
|
156
157
|
|
|
@@ -430,6 +430,27 @@ def setup_data_download(app):
|
|
|
430
430
|
return url
|
|
431
431
|
|
|
432
432
|
|
|
433
|
+
def setup_task(app):
|
|
434
|
+
task_routes = SQ_Blueprint("后台任务", url_prefix=f'{app.config.get("ROUTE_PREFIX", "")}')
|
|
435
|
+
|
|
436
|
+
@task_routes.post_route(f"运行任务", methods=['POST'])
|
|
437
|
+
def task_run(func_key: str, task_params: dict = None):
|
|
438
|
+
print(request.headers)
|
|
439
|
+
module, qualname = func_key.split(":")
|
|
440
|
+
m = import_module(module)
|
|
441
|
+
func = m
|
|
442
|
+
if "." in qualname:
|
|
443
|
+
tmp = qualname.split(".")
|
|
444
|
+
for t in tmp:
|
|
445
|
+
func = getattr(func, t)
|
|
446
|
+
else:
|
|
447
|
+
func = getattr(m, qualname)
|
|
448
|
+
task_params = task_params or dict()
|
|
449
|
+
func(**task_params)
|
|
450
|
+
|
|
451
|
+
app.register_blueprint(task_routes)
|
|
452
|
+
|
|
453
|
+
|
|
433
454
|
def setup_scheduler(app):
|
|
434
455
|
if current_app.config.get("SCHEDULER_ENABLE", False):
|
|
435
456
|
try:
|
|
@@ -12,7 +12,7 @@ from importlib import import_module
|
|
|
12
12
|
|
|
13
13
|
# 装饰器
|
|
14
14
|
# from lesscode_utils.json_utils import JSONEncoder
|
|
15
|
-
from flask import copy_current_request_context
|
|
15
|
+
from flask import copy_current_request_context, request
|
|
16
16
|
|
|
17
17
|
from lesscode_flask.utils.helpers import app_config
|
|
18
18
|
from lesscode_flask.utils.redis.redis_helper import RedisHelper
|
|
@@ -128,6 +128,9 @@ def format_insert_key(signature, func_name, args, params):
|
|
|
128
128
|
if k != "self":
|
|
129
129
|
_args.append(json.dumps(params[k]))
|
|
130
130
|
str_insert_key = "&".join([str(x) for x in _args])
|
|
131
|
+
headers = {key: value for key, value in request.headers if key in ["App-Key", "Data-Source-Id"]}
|
|
132
|
+
for h in headers:
|
|
133
|
+
str_insert_key = str_insert_key + "&" + str(headers[h])
|
|
131
134
|
str_insert_key = app_config.get("ROUTE_PREFIX") + "#" + func_name + "#" + str_insert_key
|
|
132
135
|
return str_insert_key
|
|
133
136
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import importlib
|
|
2
2
|
|
|
3
|
+
from flask import request
|
|
4
|
+
from requests import post
|
|
5
|
+
|
|
3
6
|
from lesscode_flask.app import current_app
|
|
4
7
|
|
|
5
8
|
|
|
@@ -8,7 +11,7 @@ class TaskHelper:
|
|
|
8
11
|
def add_job(func, trigger=None, args=None, kwargs=None, id=None, name=None,
|
|
9
12
|
misfire_grace_time=None, coalesce=None, max_instances=None,
|
|
10
13
|
next_run_time=None, jobstore='default', executor='default',
|
|
11
|
-
replace_existing=False, **trigger_args):
|
|
14
|
+
replace_existing=False, is_add_ctx=False, **trigger_args):
|
|
12
15
|
try:
|
|
13
16
|
util = importlib.import_module("apscheduler.util")
|
|
14
17
|
except ImportError:
|
|
@@ -22,11 +25,24 @@ class TaskHelper:
|
|
|
22
25
|
if next_run_time is None:
|
|
23
26
|
next_run_time = util.undefined
|
|
24
27
|
scheduler = getattr(current_app, 'apscheduler')
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
if is_add_ctx:
|
|
29
|
+
_func = post
|
|
30
|
+
_kwargs = {
|
|
31
|
+
"url": f"http://127.0.0.1:{current_app.config.get('PORT')}{current_app.config.get('ROUTE_PREFIX')}/task_run",
|
|
32
|
+
"json": {"func_key": f"{func.__module__}:{func.__qualname__}",
|
|
33
|
+
"task_params": kwargs, },
|
|
34
|
+
"headers": dict(request.headers)}
|
|
35
|
+
job = scheduler.add_job(func=_func, trigger=trigger, args=args, kwargs=_kwargs, id=id, name=name,
|
|
36
|
+
misfire_grace_time=misfire_grace_time, coalesce=coalesce,
|
|
37
|
+
max_instances=max_instances,
|
|
38
|
+
next_run_time=next_run_time, jobstore=jobstore, executor=executor,
|
|
39
|
+
replace_existing=replace_existing, **trigger_args)
|
|
40
|
+
else:
|
|
41
|
+
job = scheduler.add_job(func=func, trigger=trigger, args=args, kwargs=kwargs, id=id, name=name,
|
|
42
|
+
misfire_grace_time=misfire_grace_time, coalesce=coalesce,
|
|
43
|
+
max_instances=max_instances,
|
|
44
|
+
next_run_time=next_run_time, jobstore=jobstore, executor=executor,
|
|
45
|
+
replace_existing=replace_existing, **trigger_args)
|
|
30
46
|
return job
|
|
31
47
|
|
|
32
48
|
@staticmethod
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/export_data/data_download_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/model/resource_param_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/service/access_log_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/json/NotSortJSONProvider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/swagger/swagger_template.py
RENAMED
|
File without changes
|
{lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask/utils/swagger/swagger_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode_flask-0.1.62 → lesscode-flask-0.1.64}/lesscode_flask.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|