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
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:
cd cmdb-ui && yarn run serve

View File

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

View File

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

View File

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

View File

@ -3,7 +3,7 @@
from api.app import create_app
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.app_context().push()

View File

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

View File

@ -53,13 +53,16 @@ MAIL_PASSWORD = ''
DEFAULT_MAIL_SENDER = ''
# # queue
CELERY_RESULT_BACKEND = "redis://127.0.0.1:6379/2"
BROKER_URL = 'redis://127.0.0.1:6379/2'
BROKER_VHOST = '/'
CELERY = {
"broker_url": 'redis://127.0.0.1:6379/2',
"result_backend": "redis://127.0.0.1:6379/2",
"broker_vhost": "/",
"broker_connection_retry_on_startup": True
}
ONCE = {
'backend': 'celery_once.backends.Redis',
'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-ui**目录执行`yarn run serve`
- worker:
- 进入**cmdb-api**目录执行 `pipenv run celery worker -A celery_worker.celery -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 one_cmdb_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)
- 如果是非本机访问, 要修改**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`
- frontend: in **cmdb-ui** directory: `yarn run serve`
- 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 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 one_cmdb_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)
- if not run localhost: please change ip address(**VUE_APP_API_BASE_URL**) in config file **cmdb-ui/.env** into your backend ip address