upgrade celery

This commit is contained in:
pycook 2023-08-08 13:16:07 +08:00
parent ef09497d67
commit 7e38dd8fab
10 changed files with 31 additions and 188 deletions

View File

@ -25,7 +25,7 @@ api:
cd cmdb-api && pipenv run flask run -h 0.0.0.0 cd cmdb-api && pipenv run flask run -h 0.0.0.0
worker: worker:
cd cmdb-api && pipenv run celery worker -A celery_worker.celery -E -Q one_cmdb_async --concurrency=1 -D && pipenv run celery worker -A celery_worker.celery -E -Q acl_async --concurrency=1 -D cd cmdb-api && pipenv run celery -A celery_worker.celery worker -E -Q one_cmdb_async --concurrency=1 -D && pipenv run celery -A celery_worker.celery worker -E -Q acl_async --concurrency=1 -D
ui: ui:
cd cmdb-ui && yarn run serve cd cmdb-ui && yarn run serve

View File

@ -14,7 +14,7 @@ Flask-RESTful = "==0.3.10"
Flask-SQLAlchemy = "==2.5.0" Flask-SQLAlchemy = "==2.5.0"
SQLAlchemy = "==1.4.49" SQLAlchemy = "==1.4.49"
PyMySQL = "==1.1.0" PyMySQL = "==1.1.0"
redis = "==3.2.1" redis = "==4.6.0"
# Migrations # Migrations
Flask-Migrate = "==2.5.2" Flask-Migrate = "==2.5.2"
# Deployment # Deployment
@ -32,10 +32,10 @@ Flask-Caching = ">=1.0.0"
environs = "==4.2.0" environs = "==4.2.0"
marshmallow = "==2.20.2" marshmallow = "==2.20.2"
# async tasks # async tasks
celery = "==4.3.0" celery = "==5.3.1"
celery_once = "==3.0.1" celery_once = "==3.0.1"
more-itertools = "==5.0.0" more-itertools = "==5.0.0"
kombu = "==4.4.0" kombu = "==5.3.1"
# common setting # common setting
timeout-decorator = "==0.5.0" timeout-decorator = "==0.5.0"
WTForms = "==3.0.0" WTForms = "==3.0.0"
@ -50,7 +50,7 @@ toposort = ">=1.5"
requests = ">=2.22.0" requests = ">=2.22.0"
PyJWT = "==2.4.0" PyJWT = "==2.4.0"
elasticsearch = "==7.17.9" elasticsearch = "==7.17.9"
future = "==0.18.2" future = "==0.18.3"
itsdangerous = "==2.1.2" itsdangerous = "==2.1.2"
Jinja2 = "==3.1.2" Jinja2 = "==3.1.2"
jinja2schema = "==0.1.4" jinja2schema = "==0.1.4"

View File

@ -129,7 +129,7 @@ def register_extensions(app):
rd.init_app(app) rd.init_app(app)
if app.config.get('USE_ES'): if app.config.get('USE_ES'):
es.init_app(app) es.init_app(app)
celery.conf.update(app.config) celery.conf.update(app.config.get('CELERY'))
def register_blueprints(app): def register_blueprints(app):

View File

@ -7,10 +7,8 @@ from functools import wraps
import jwt import jwt
from flask import abort from flask import abort
from flask import current_app from flask import current_app
from flask import g
from flask import request from flask import request
from flask import session from flask import session
from flask_login import current_user
from flask_login import login_user from flask_login import login_user
from api.lib.perm.acl.acl import ACLManager from api.lib.perm.acl.acl import ACLManager
@ -65,12 +63,10 @@ def _auth_with_key():
def _auth_with_session(): def _auth_with_session():
if isinstance(getattr(g, 'user', None), User):
login_user(current_user)
return True
if "acl" in session and "userName" in (session["acl"] or {}): if "acl" in session and "userName" in (session["acl"] or {}):
login_user(UserCache.get(session["acl"]["userName"])) login_user(UserCache.get(session["acl"]["userName"]))
return True return True
return False return False
@ -158,9 +154,12 @@ def _auth_with_acl_token():
def auth_required(func): def auth_required(func):
if request.json is not None: try:
setattr(request, 'values', request.json) if request.json is not None:
else: setattr(request, 'values', request.json)
else:
setattr(request, 'values', request.values.to_dict())
except:
setattr(request, 'values', request.values.to_dict()) setattr(request, 'values', request.values.to_dict())
@wraps(func) @wraps(func)

View File

@ -3,7 +3,7 @@
from api.app import create_app from api.app import create_app
from api.extensions import celery from api.extensions import celery
# celery worker -A celery_worker.celery -l DEBUG -E -Q xxxx # celery -A celery_worker.celery worker -l DEBUG -E -Q xxxx
app = create_app() app = create_app()
app.app_context().push() app.app_context().push()

View File

@ -1,20 +1,9 @@
-i https://mirrors.aliyun.com/pypi/simple -i https://mirrors.aliyun.com/pypi/simple
alembic==1.7.7 alembic==1.7.7
amqp==2.6.1
aniso8601==9.0.1
attrs==23.1.0
backports.zoneinfo==0.2.1
bcrypt==4.0.1
beautifulsoup4==4.12.2
billiard==3.6.4.0
bs4==0.0.1 bs4==0.0.1
cachelib==0.9.0 celery==5.3.1
celery==4.3.0
celery-once==3.0.1 celery-once==3.0.1
certifi==2023.7.22
charset-normalizer==3.1.0
click==8.1.3 click==8.1.3
dnspython==2.3.0
elasticsearch==7.17.9 elasticsearch==7.17.9
email-validator==1.3.1 email-validator==1.3.1
environs==4.2.0 environs==4.2.0
@ -27,51 +16,31 @@ Flask-Login==0.6.2
Flask-Migrate==2.5.2 Flask-Migrate==2.5.2
Flask-RESTful==0.3.10 Flask-RESTful==0.3.10
Flask-SQLAlchemy==2.5.0 Flask-SQLAlchemy==2.5.0
future==0.18.2 future==0.18.3
gunicorn==21.0.1 gunicorn==21.0.1
idna==3.4
importlib-metadata==6.8.0
importlib-resources=
=6.0.0
itsdangerous==2.1.2 itsdangerous==2.1.2
Jinja2==3.1.2 Jinja2==3.1.2
jinja2schema==0.1.4 jinja2schema==0.1.4
jsonschema==4.18.0 jsonschema==4.18.0
jsonschema-specifications==2023.6.1 kombu==5.3.1
kombu==4.4.0
Mako==1.2.4 Mako==1.2.4
MarkupSafe==2.1.3 MarkupSafe==2.1.3
marshmallow==2.20.2 marshmallow==2.20.2
meld3==2.0.1
mistune==3.0.1
more-itertools==5.0.0 more-itertools==5.0.0
msgpack-python==0.5.6 msgpack-python==0.5.6
Pillow==9.3.0 Pillow==9.3.0
pkgutil_resolve_name==1.3.10
pyasn1==0.5.0
pyasn1-modules==0.3.0
pycryptodome==3.12.0 pycryptodome==3.12.0
PyJWT==2.4.0 PyJWT==2.4.0
PyMySQL==1.1.0 PyMySQL==1.1.0
python-dateutil==2.8.2
python-dotenv==1.0.0
python-ldap==3.4.0 python-ldap==3.4.0
pytz==2023.3
PyYAML==6.0 PyYAML==6.0
redis==3.2.1 redis==4.6.0
referencing==0.29.1
requests==2.31.0 requests==2.31.0
rpds-py==0.8.8
six==1.12.0 six==1.12.0
soupsieve==2.4.1
SQLAlchemy==1.4.49 SQLAlchemy==1.4.49
supervisor==4.0.3 supervisor==4.0.3
timeout-decorator==0.5.0 timeout-decorator==0.5.0
toposort==1.10 toposort==1.10
treelib==1.6.1 treelib==1.6.1
tzlocal==5.0.1
urllib3==1.26.16
vine==1.3.0
Werkzeug==2.3.6 Werkzeug==2.3.6
WTForms==3.0.0 WTForms==3.0.0
zipp==3.16.0

View File

@ -53,13 +53,16 @@ MAIL_PASSWORD = ''
DEFAULT_MAIL_SENDER = '' DEFAULT_MAIL_SENDER = ''
# # queue # # queue
CELERY_RESULT_BACKEND = "redis://127.0.0.1:6379/2" CELERY = {
BROKER_URL = 'redis://127.0.0.1:6379/2' "broker_url": 'redis://127.0.0.1:6379/2',
BROKER_VHOST = '/' "result_backend": "redis://127.0.0.1:6379/2",
"broker_vhost": "/",
"broker_connection_retry_on_startup": True
}
ONCE = { ONCE = {
'backend': 'celery_once.backends.Redis', 'backend': 'celery_once.backends.Redis',
'settings': { 'settings': {
'url': BROKER_URL, 'url': CELERY['broker_url'],
} }
} }

File diff suppressed because one or more lines are too long

View File

@ -28,8 +28,8 @@ cp cmdb-api/settings.example.py cmdb-api/settings.py
- 后端: 进入**cmdb-api**目录执行 `pipenv run flask run -h 0.0.0.0` - 后端: 进入**cmdb-api**目录执行 `pipenv run flask run -h 0.0.0.0`
- 前端: 进入**cmdb-ui**目录执行`yarn run serve` - 前端: 进入**cmdb-ui**目录执行`yarn run serve`
- worker: - worker:
- 进入**cmdb-api**目录执行 `pipenv run celery worker -A celery_worker.celery -E -Q one_cmdb_async --concurrency=1 -D` - 进入**cmdb-api**目录执行 `pipenv run celery -A celery_worker.celery worker -E -Q one_cmdb_async --concurrency=1 -D`
- 进入**cmdb-api**目录执行 `pipenv run celery worker -A celery_worker.celery -E -Q acl_async --concurrency=1 -D` - 进入**cmdb-api**目录执行 `pipenv run celery -A celery_worker.celery worker -E -Q acl_async --concurrency=1 -D`
- 浏览器打开: [http://127.0.0.1:8000](http://127.0.0.1:8000) - 浏览器打开: [http://127.0.0.1:8000](http://127.0.0.1:8000)
- 如果是非本机访问, 要修改**cmdb-ui/.env**里**VUE_APP_API_BASE_URL**里的 IP 地址为后端服务的 ip 地址 - 如果是非本机访问, 要修改**cmdb-ui/.env**里**VUE_APP_API_BASE_URL**里的 IP 地址为后端服务的 ip 地址

View File

@ -26,8 +26,8 @@
- backend: in **cmdb-api** directory: `pipenv run flask run -h 0.0.0.0` - backend: in **cmdb-api** directory: `pipenv run flask run -h 0.0.0.0`
- frontend: in **cmdb-ui** directory: `yarn run serve` - frontend: in **cmdb-ui** directory: `yarn run serve`
- worker: - worker:
- in **cmdb-api** directory: `pipenv run celery worker -A celery_worker.celery -E -Q one_cmdb_async --concurrency=1 -D` - in **cmdb-api** directory: `pipenv run celery -A celery_worker.celery worker -E -Q one_cmdb_async --concurrency=1 -D`
- in **cmdb-api** directory: `pipenv run celery worker -A celery_worker.celery -E -Q acl_async --concurrency=1 -D` - in **cmdb-api** directory: `pipenv run celery -A celery_worker.celery worker -E -Q acl_async --concurrency=1 -D`
- homepage: [http://127.0.0.1:8000](http://127.0.0.1:8000) - homepage: [http://127.0.0.1:8000](http://127.0.0.1:8000)
- if not run localhost: please change ip address(**VUE_APP_API_BASE_URL**) in config file **cmdb-ui/.env** into your backend ip address - if not run localhost: please change ip address(**VUE_APP_API_BASE_URL**) in config file **cmdb-ui/.env** into your backend ip address