瀏覽代碼

fix: block call to flask_app

Yeuoly 6 月之前
父節點
當前提交
c9eb9c14d7
共有 1 個文件被更改,包括 11 次插入3 次删除
  1. 11 3
      api/services/plugin/plugin_migration.py

+ 11 - 3
api/services/plugin/plugin_migration.py

@@ -72,6 +72,8 @@ class PluginMigration:
                 except Exception:
                     logger.exception(f"Failed to process tenant {tenant_id}")
 
+        futures = []
+
         while current_time < ended_at:
             click.echo(click.style(f"Current time: {current_time}, Started at: {datetime.datetime.now()}", fg="white"))
             # Initial interval of 1 day, will be dynamically adjusted based on tenant count
@@ -129,13 +131,19 @@ class PluginMigration:
                         logger.exception(f"Failed to process tenant {tenant_id}")
                         continue
 
-            # Process batch with thread pool
-            thread_pool.map(lambda tenant_id: process_tenant(current_app, tenant_id), tenants)
+                    futures.append(
+                        thread_pool.submit(
+                            process_tenant,
+                            current_app._get_current_object(),  # type: ignore[attr-defined]
+                            tenant_id,
+                        )
+                    )
 
             current_time = batch_end
 
         # wait for all threads to finish
-        thread_pool.shutdown(wait=True)
+        for future in futures:
+            future.result()
 
     @classmethod
     def extract_installed_plugin_ids(cls, tenant_id: str) -> Sequence[str]: