Refactor the backend architecture (#299)

* define the basic architecture

* Update script and deployment file locations

* Update the route registration

* Fix CI download dependencies

* Updated ruff to 0.3.3

* Update app subdirectory naming

* Update the model import

* fix pre-commit pdm lock

* Update the service directory naming

* Add CRUD method documents

* Fix the issue of circular import

* Update the README document

* Update the SQL statement for create tables

* Update docker scripts and documentation

* Fix docker scripts

* Update the backend README.md

* Add the security folder and move the redis client

* Update the configuration item

* Fix environment configuration reads

* Update the default configuration

* Updated README description

* Updated the user registration API

* Fix test cases

* Update the celery configuration

* Update and fix celery configuration

* Updated the celery structure

* Update celery tasks and api

* Add celery flower

* Update the import style

* Update contributors
This commit is contained in:
Wu Clan
2024-03-22 18:16:15 +08:00
committed by GitHub
parent a98621b40d
commit 5e438c685d
190 changed files with 2408 additions and 1494 deletions
+2
View File
@@ -0,0 +1,2 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
@@ -0,0 +1,2 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
@@ -0,0 +1,39 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from sqlalchemy.exc import SQLAlchemyError
from backend.app.admin.service.login_log_service import login_log_service
from backend.app.admin.service.opera_log_service import opera_log_service
from backend.app.task.celery import celery_app
from backend.app.task.conf import task_settings
@celery_app.task(
name='auto_delete_db_opera_log',
bind=True,
retry_backoff=True,
max_retries=task_settings.CELERY_TASK_MAX_RETRIES,
)
async def auto_delete_db_opera_log(self) -> int:
"""自动删除数据库操作日志"""
try:
result = await opera_log_service.delete_all()
except SQLAlchemyError as exc:
raise self.retry(exc=exc)
return result
@celery_app.task(
name='auto_delete_db_login_log',
bind=True,
retry_backoff=True,
max_retries=task_settings.CELERY_TASK_MAX_RETRIES,
)
async def auto_delete_db_login_log(self) -> int:
"""自动删除数据库登录日志"""
try:
result = await login_log_service.delete_all()
except SQLAlchemyError as exc:
raise self.retry(exc=exc)
return result
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import uuid
from backend.app.task.celery import celery_app
@celery_app.task(name='task_demo_async')
def task_demo_async() -> str:
uid = uuid.uuid4().hex
print(f'异步任务 {uid} 执行成功')
return uid