fix: 增加 busy_timeout、最小化事务块、增加每批处理 page 量 (#420)

This commit is contained in:
ᴀᴍᴛᴏᴀᴇʀ
2025-08-06 14:08:07 +08:00
committed by GitHub
parent dbcb1fa78b
commit 4f780faf64
4 changed files with 60 additions and 54 deletions
+18 -3
View File
@@ -1,6 +1,10 @@
use std::time::Duration;
use anyhow::{Context, Result};
use bili_sync_migration::{Migrator, MigratorTrait};
use sea_orm::{ConnectOptions, Database, DatabaseConnection};
use sea_orm::sqlx::sqlite::SqliteConnectOptions;
use sea_orm::sqlx::{ConnectOptions as SqlxConnectOptions, Sqlite};
use sea_orm::{ConnectOptions, Database, DatabaseConnection, SqlxSqliteConnector};
use crate::config::CONFIG_DIR;
@@ -13,8 +17,19 @@ async fn database_connection() -> Result<DatabaseConnection> {
option
.max_connections(100)
.min_connections(5)
.acquire_timeout(std::time::Duration::from_secs(90));
Ok(Database::connect(option).await?)
.acquire_timeout(Duration::from_secs(90));
let connect_option = option
.get_url()
.parse::<SqliteConnectOptions>()
.context("Failed to parse database URL")?
.disable_statement_logging()
.busy_timeout(Duration::from_secs(90));
Ok(SqlxSqliteConnector::from_sqlx_sqlite_pool(
option
.sqlx_pool_options::<Sqlite>()
.connect_with(connect_option)
.await?,
))
}
async fn migrate_database() -> Result<()> {