use read replica for raw query

This commit is contained in:
Hongbo Wu
2024-06-27 17:10:58 +08:00
parent 84953198fe
commit 1168d12018
2 changed files with 12 additions and 5 deletions

View File

@ -22,8 +22,12 @@ export const refreshAllFeeds = async (db: DataSource): Promise<boolean> => {
refreshID: uuid(),
startedAt: new Date().toISOString(),
} as RSSRefreshContext
const subscriptionGroups = (await db.createEntityManager().query(
`
let subscriptionGroups = []
const slaveQueryRunner = db.createQueryRunner('slave')
try {
subscriptionGroups = (await slaveQueryRunner.query(
`
SELECT
url,
ARRAY_AGG(s.id) AS "subscriptionIds",
@ -45,8 +49,11 @@ export const refreshAllFeeds = async (db: DataSource): Promise<boolean> => {
GROUP BY
url
`,
['RSS', 'ACTIVE', 'following', 'ACTIVE']
)) as RssSubscriptionGroup[]
['RSS', 'ACTIVE', 'following', 'ACTIVE']
)) as RssSubscriptionGroup[]
} finally {
await slaveQueryRunner.release()
}
logger.info(`rss: checking ${subscriptionGroups.length}`, {
refreshContext,

View File

@ -36,7 +36,7 @@ export class CustomTypeOrmLogger
logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner) {
this.logger.info(query, {
isReplicated: queryRunner?.connection?.driver?.isReplicated,
replicationMode: queryRunner?.getReplicationMode(),
parameters,
})
}