feat: correctly delete applications using Celery workers (#5787)

This commit is contained in:
Charles Zhou
2024-07-01 01:21:17 -05:00
committed by GitHub
parent 5692f9b33b
commit cb09dbef66
11 changed files with 158 additions and 60 deletions

View File

@@ -3,9 +3,6 @@ from blinker import signal
# sender: app
app_was_created = signal('app-was-created')
# sender: app
app_was_deleted = signal('app-was-deleted')
# sender: app, kwargs: app_model_config
app_model_config_was_updated = signal('app-model-config-was-updated')

View File

@@ -4,10 +4,7 @@ from .create_document_index import handle
from .create_installed_app_when_app_created import handle
from .create_site_record_when_app_created import handle
from .deduct_quota_when_messaeg_created import handle
from .delete_installed_app_when_app_deleted import handle
from .delete_site_record_when_app_deleted import handle
from .delete_tool_parameters_cache_when_sync_draft_workflow import handle
from .delete_workflow_as_tool_when_app_deleted import handle
from .update_app_dataset_join_when_app_model_config_updated import handle
from .update_app_dataset_join_when_app_published_workflow_updated import handle
from .update_provider_last_used_at_when_messaeg_created import handle

View File

@@ -1,12 +0,0 @@
from events.app_event import app_was_deleted
from extensions.ext_database import db
from models.model import InstalledApp
@app_was_deleted.connect
def handle(sender, **kwargs):
app = sender
installed_apps = db.session.query(InstalledApp).filter(InstalledApp.app_id == app.id).all()
for installed_app in installed_apps:
db.session.delete(installed_app)
db.session.commit()

View File

@@ -1,11 +0,0 @@
from events.app_event import app_was_deleted
from extensions.ext_database import db
from models.model import Site
@app_was_deleted.connect
def handle(sender, **kwargs):
app = sender
site = db.session.query(Site).filter(Site.app_id == app.id).first()
db.session.delete(site)
db.session.commit()

View File

@@ -1,14 +0,0 @@
from events.app_event import app_was_deleted
from extensions.ext_database import db
from models.tools import WorkflowToolProvider
@app_was_deleted.connect
def handle(sender, **kwargs):
app = sender
workflow_tools = db.session.query(WorkflowToolProvider).filter(
WorkflowToolProvider.app_id == app.id
).all()
for workflow_tool in workflow_tools:
db.session.delete(workflow_tool)
db.session.commit()