Может туплю, но не совсем понял как в dishka сделать разные конфиги одного и того же instance в разные provide. У меня вот есть функция get_task_client, и вот не совсем понимаю как мне передать в `get_task_storage` таск клиент с одной бд, а в `get_skill_storage` с другой. @Tishka17
class SkillRouterProvider(Provider):
scope = Scope.APP
@provide
async def get_task_client(self) -> StorageClient:
if settings.redis_host and settings.redis_port:
return RedisStorageClient(
host=settings.redis_host,
port=settings.redis_port,
db=settings.redis_db
)
logger.warning(msg="Redis storage is not configured, in-memory cache storage will be used.")
return DefaultStorageClient()
@provide
async def get_task_storage(self, client: StorageClient) -> TaskStorage: # type: ignore[return-value]
return TaskStorage(client=client) # здесь хочу db=settings.redis_task_db
@provide
async def get_skill_storage(self, client: StorageClient) -> SkillStorage: # type: ignore[return-value]
return SkillStorage(client=client) # здесь хочу db=settings.redis_skill_db
Спасибо!
Спасибо!
Может туплю, но не совсем понял как в dishka сделать разные конфиги одного и того же instance в разные provide. У меня вот есть функция
get_task_client, и вот не совсем понимаю как мне передать в `get_task_storage` таск клиент с одной бд, а в `get_skill_storage` с другой.@Tishka17
Сравнивал рекомендации из Spotify и Deezer. У Яндекса были субъективно самые лучшие.