Skip to content

Commit 2ca3706

Browse files
committed
添加提供程序的链接管理
1 parent 444841b commit 2ca3706

File tree

4 files changed

+72
-2
lines changed

4 files changed

+72
-2
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using MySql.Data.MySqlClient;
2+
using MyStaging.Core;
3+
using MyStaging.Interface;
4+
using System.Data.Common;
5+
6+
namespace MyStaging.MySql
7+
{
8+
public partial class MySqlStagingConnection : IStagingConnection
9+
{
10+
public DbConnection GetConnection(string name, bool readOnly)
11+
{
12+
var model = ConnectionManager.Get(name, readOnly);
13+
var conn = new MySqlConnection(model.ConnectionString);
14+
15+
return conn;
16+
}
17+
18+
public void Refresh(string name, string master, params string[] slaves)
19+
{
20+
MySqlConnection.ClearAllPools();
21+
ConnectionManager.Remove(name);
22+
ConnectionManager.Add(name, master, false);
23+
if (slaves?.Length > 0)
24+
{
25+
foreach (var conn in slaves)
26+
{
27+
ConnectionManager.Add(name, conn, true);
28+
}
29+
}
30+
}
31+
}
32+
}

src/MyStaging.MySql/MyStaging.MySql.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>netstandard2.1</TargetFramework>
5-
<Version>3.0.3</Version>
5+
<Version>3.0.4</Version>
66
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
77
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
88
</PropertyGroup>

src/MyStaging.PostgreSQL/MyStaging.PostgreSQL.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<TargetFramework>netstandard2.1</TargetFramework>
55
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
6-
<Version>3.0.3</Version>
6+
<Version>3.0.4</Version>
77
</PropertyGroup>
88

99
<ItemGroup>
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using MyStaging.Common;
2+
using MyStaging.Core;
3+
using MyStaging.Interface;
4+
using Npgsql;
5+
using System;
6+
using System.Collections.Concurrent;
7+
using System.Collections.Generic;
8+
using System.Data.Common;
9+
using System.Diagnostics;
10+
using System.Linq;
11+
12+
namespace MyStaging.PostgreSQL
13+
{
14+
public partial class PgStagingConnection : IStagingConnection
15+
{
16+
public DbConnection GetConnection(string name, bool readOnly)
17+
{
18+
var model = ConnectionManager.Get(name, readOnly);
19+
var conn = new NpgsqlConnection(model.ConnectionString);
20+
21+
return conn;
22+
}
23+
24+
public void Refresh(string name, string master, params string[] slaves)
25+
{
26+
NpgsqlConnection.ClearAllPools();
27+
ConnectionManager.Remove(name);
28+
ConnectionManager.Add(name, master, false);
29+
if (slaves?.Length > 0)
30+
{
31+
foreach (var conn in slaves)
32+
{
33+
ConnectionManager.Add(name, conn, true);
34+
}
35+
}
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)