1010from syncmaster .config import Settings
1111from syncmaster .db .models import RunType , Status , Transfer
1212from syncmaster .exceptions .run import CannotConnectToTaskQueueError
13- from syncmaster .scheduler .transfer_fetcher import AsyncSessionLocal
13+ from syncmaster .scheduler .transfer_fetcher import get_async_session
1414from syncmaster .schemas .v1 .connections .connection import ReadAuthDataSchema
1515from syncmaster .worker .config import celery
1616
1717
1818class TransferJobManager :
19- def __init__ (self ):
20- self .scheduler = AsyncIOScheduler (timezone = Settings ().TZ )
21- self .scheduler .add_jobstore ("sqlalchemy" , url = Settings ().build_db_connection_uri (driver = "psycopg2" ))
19+ def __init__ (self , settings : Settings ):
20+ self .scheduler = AsyncIOScheduler (timezone = settings .TZ )
21+ self .scheduler .add_jobstore ("sqlalchemy" , url = settings .build_db_connection_uri (driver = "psycopg2" ))
22+ self .settings = settings
2223
2324 def update_jobs (self , transfers : list [Transfer ]) -> None :
2425 for transfer in transfers :
@@ -34,21 +35,21 @@ def update_jobs(self, transfers: list[Transfer]) -> None:
3435 self .scheduler .modify_job (
3536 job_id = job_id ,
3637 trigger = CronTrigger .from_crontab (transfer .schedule ),
37- args = (transfer .id ,),
38+ args = (transfer .id , self . settings ),
3839 )
3940 else :
4041 self .scheduler .add_job (
4142 func = TransferJobManager .send_job_to_celery ,
4243 id = job_id ,
4344 trigger = CronTrigger .from_crontab (transfer .schedule ),
44- args = (transfer .id ,),
45+ args = (transfer .id , self . settings ),
4546 )
4647
4748 @staticmethod
48- async def send_job_to_celery (transfer_id : int ) -> None :
49+ async def send_job_to_celery (transfer_id : int , settings : Settings ) -> None :
4950
50- async with AsyncSessionLocal ( ) as session :
51- unit_of_work = UnitOfWork (session = session , settings = Settings () )
51+ async with get_async_session ( settings ) as session :
52+ unit_of_work = UnitOfWork (session = session , settings = settings )
5253
5354 transfer = await unit_of_work .transfer .read_by_id (transfer_id )
5455 credentials_source = await unit_of_work .credentials .read (transfer .source_connection_id )
0 commit comments