Мульти Арендатор на Quartz.NET - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь достичь мультитенанта в Quartz.NET. мне нужно иметь один процесс для Quartz.NET с несколькими базами данных, и каждая база данных для арендатора. Я могу создать отдельную базу данных для каждого арендатора. Теперь я хочу создать соединение с базой данных для каждого арендатора и подготовить его в кеше, чтобы оно могло быть разрешено при поступлении нового запроса.

Я пробовал некоторые комбинации в файле app.config, но это не сработало. Я также попытался написать код, чтобы добавить свои собственные соединения с БД в пул соединений, которые также не работали.

Quartz.Impl.AdoJobStore.Common.DbProvider dbp = DBConnectionManager.Instance.GetDbProvider("postgres");
                //new Quartz.Impl.AdoJobStore.Common.DbProvider("postgres", "Server=scheduler_postgres;Port=5432;Userid=xxx;Password=xxx;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Timeout=15;SslMode=Disable;Database=scheduler_db_xxx");
                dbp.Initialize();
                DBConnectionManager.Instance.AddConnectionProvider("xxx", dbp);

<add key="quartz.jobStore.dataSource" value="postgres" />
  <add key="quartz.jobStore.dataSource" value="postgres_ssnc" />
  <add key="quartz.jobStore.dataSource" value="postgres_abc" />

<add key="quartz.jobStore.tablePrefix" value="QRTZ_" />
<add key="quartz.dataSource.postgres.connectionString" value="Server=scheduler_postgres;Port=5434;Userid=aloha;Password=aloha;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Timeout=15;SslMode=Disable;Database=scheduler_db"/>
<add key="quartz.dataSource.postgres_ssnc.connectionString" value="Server=scheduler_postgres;Port=5434;Userid=aloha;Password=aloha;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Timeout=15;SslMode=Disable;Database=scheduler_db_ssnc"/>
<add key="quartz.dataSource.postgres_abc.connectionString" value="Server=scheduler_postgres;Port=5434;Userid=aloha;Password=aloha;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Timeout=15;SslMode=Disable;Database=scheduler_db_abc"/>
<add key="quartz.dataSource.postgres.provider" value="Npgsql" />

<add key="quartz.plugin.recentHistory.type" value="Quartz.Plugins.RecentHistory.ExecutionHistoryPlugin, Quartz.Plugins.RecentHistory" />
<add key="quartz.plugin.recentHistory.storeType" value="Quartz.Plugins.RecentHistory.Impl.InProcExecutionHistoryStore, Quartz.Plugins.RecentHistory" />
...