🐛 fix(utils.py): refactor service initialization to improve readability and error handling
✨ feat(utils.py): add session service factory and dependencies to support session management
This commit is contained in:
parent
f5bee3e7ae
commit
98df4f2655
1 changed files with 32 additions and 22 deletions
|
|
@ -136,30 +136,40 @@ def initialize_services():
|
||||||
from langflow.services.task import factory as task_factory
|
from langflow.services.task import factory as task_factory
|
||||||
from langflow.services.session import factory as session_service_factory # type: ignore
|
from langflow.services.session import factory as session_service_factory # type: ignore
|
||||||
|
|
||||||
service_manager.register_factory(settings_factory.SettingsServiceFactory())
|
factory_and_dependencies = [
|
||||||
service_manager.register_factory(
|
(settings_factory.SettingsServiceFactory(), []),
|
||||||
auth_factory.AuthServiceFactory(), dependencies=[ServiceType.SETTINGS_SERVICE]
|
(
|
||||||
)
|
auth_factory.AuthServiceFactory(),
|
||||||
service_manager.register_factory(
|
[ServiceType.SETTINGS_SERVICE],
|
||||||
database_factory.DatabaseServiceFactory(),
|
),
|
||||||
dependencies=[ServiceType.SETTINGS_SERVICE],
|
(
|
||||||
)
|
database_factory.DatabaseServiceFactory(),
|
||||||
service_manager.register_factory(
|
[ServiceType.SETTINGS_SERVICE],
|
||||||
cache_factory.CacheServiceFactory(), dependencies=[ServiceType.SETTINGS_SERVICE]
|
),
|
||||||
)
|
(
|
||||||
service_manager.register_factory(chat_factory.ChatServiceFactory())
|
cache_factory.CacheServiceFactory(),
|
||||||
|
[ServiceType.SETTINGS_SERVICE],
|
||||||
|
),
|
||||||
|
(chat_factory.ChatServiceFactory(), []),
|
||||||
|
(task_factory.TaskServiceFactory(), []),
|
||||||
|
(
|
||||||
|
session_service_factory.SessionServiceFactory(),
|
||||||
|
[ServiceType.CACHE_SERVICE],
|
||||||
|
),
|
||||||
|
]
|
||||||
|
for factory, dependencies in factory_and_dependencies:
|
||||||
|
try:
|
||||||
|
service_manager.register_factory(factory, dependencies=dependencies)
|
||||||
|
except Exception as exc:
|
||||||
|
logger.exception(exc)
|
||||||
|
raise RuntimeError(
|
||||||
|
"Could not initialize services. Please check your settings."
|
||||||
|
) from exc
|
||||||
|
|
||||||
service_manager.register_factory(task_factory.TaskServiceFactory())
|
|
||||||
|
|
||||||
service_manager.register_factory(
|
|
||||||
session_service_factory.SessionServiceFactory(),
|
|
||||||
dependencies=[ServiceType.CACHE_SERVICE],
|
|
||||||
)
|
|
||||||
# Test cache connection
|
# Test cache connection
|
||||||
service_manager.get(ServiceType.CACHE_SERVICE)
|
service_manager.get(ServiceType.CACHE_SERVICE)
|
||||||
# Test database connection
|
|
||||||
service_manager.get(ServiceType.DATABASE_SERVICE)
|
|
||||||
# Setup the superuser
|
# Setup the superuser
|
||||||
initialize_database()
|
initialize_database()
|
||||||
session = next(get_session())
|
setup_superuser(
|
||||||
setup_superuser(service_manager.get(ServiceType.SETTINGS_SERVICE), session)
|
service_manager.get(ServiceType.SETTINGS_SERVICE), next(get_session())
|
||||||
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue