Skip to content

Commit 09b1f3e

Browse files
author
jason
committed
Merge remote-tracking branch 'origin/master' into jason_dev
2 parents 9b912d9 + 5a3478d commit 09b1f3e

File tree

6 files changed

+42
-20
lines changed

6 files changed

+42
-20
lines changed

src/Infrastructure/BotSharp.Abstraction/Infrastructures/Events/IEventSubscriber.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public interface IEventSubscriber
66
{
77
Task SubscribeAsync(string channel, Func<string, string, Task> received);
88

9-
Task SubscribeAsync(string channel, string group, bool priorityEnabled,
9+
Task SubscribeAsync(string channel, string group, int? port, bool priorityEnabled,
1010
Func<string, string, Task> received,
1111
CancellationToken? stoppingToken = null);
1212
}

src/Infrastructure/BotSharp.Abstraction/Repositories/BotSharpDatabaseSettings.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@ namespace BotSharp.Abstraction.Repositories;
22

33
public class BotSharpDatabaseSettings : DatabaseBasicSettings
44
{
5-
public string[] Assemblies { get; set; }
6-
public string FileRepository { get; set; }
7-
public string BotSharpMongoDb { get; set; }
8-
public string TablePrefix { get; set; }
9-
public DbConnectionSetting BotSharp { get; set; }
10-
public string Redis { get; set; }
5+
public string[] Assemblies { get; set; } = [];
6+
public string FileRepository { get; set; } = string.Empty;
7+
public string BotSharpMongoDb { get; set; } = string.Empty;
8+
public string TablePrefix { get; set; } = string.Empty;
9+
public DbConnectionSetting BotSharp { get; set; } = new();
10+
public string Redis { get; set; } = string.Empty;
11+
public bool EnableReplica { get; set; } = true;
1112
}
1213

1314
public class DatabaseBasicSettings
1415
{
15-
public string Default { get; set; }
16-
public DbConnectionSetting DefaultConnection { get; set; }
16+
public string Default { get; set; } = string.Empty;
17+
public DbConnectionSetting DefaultConnection { get; set; } = new();
1718
public bool EnableSqlLog { get; set; }
1819
public bool EnableSensitiveDataLogging { get; set; }
1920
public bool EnableRetryOnFailure { get; set; }
@@ -23,9 +24,11 @@ public class DbConnectionSetting
2324
{
2425
public string Master { get; set; }
2526
public string[] Slavers { get; set; }
27+
public int ConnectionTimeout { get; set; } = 30;
28+
public int ExecutionTimeout { get; set; } = 30;
2629

2730
public DbConnectionSetting()
2831
{
29-
Slavers = new string[0];
32+
Slavers = [];
3033
}
3134
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
namespace BotSharp.Abstraction.Utilities;
2+
3+
public static class MathExt
4+
{
5+
public static int Max(int a, int b, int c)
6+
{
7+
return Math.Max(Math.Max(a, b), c);
8+
}
9+
10+
public static long Max(long a, long b, long c)
11+
{
12+
return Math.Max(Math.Max(a, b), c);
13+
}
14+
}

src/Infrastructure/BotSharp.Core/BotSharp.Core.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@
190190
<ItemGroup>
191191
<PackageReference Include="Aspects.Cache" Version="2.0.4" />
192192
<PackageReference Include="DistributedLock.Redis" Version="1.0.3" />
193-
<PackageReference Include="EntityFrameworkCore.BootKit" Version="8.5.1" />
193+
<PackageReference Include="EntityFrameworkCore.BootKit" Version="8.6.0" />
194194
<PackageReference Include="Fluid.Core" Version="2.11.1" />
195195
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.1" />
196196
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />

src/Infrastructure/BotSharp.Core/Infrastructures/Events/RedisSubscriber.cs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ await _subscriber.SubscribeAsync(channel, async (ch, message) =>
2525
});
2626
}
2727

28-
public async Task SubscribeAsync(string channel, string group, bool priorityEnabled,
28+
public async Task SubscribeAsync(string channel, string group, int? port, bool priorityEnabled,
2929
Func<string, string, Task> received,
3030
CancellationToken? stoppingToken = null)
3131
{
@@ -42,6 +42,12 @@ public async Task SubscribeAsync(string channel, string group, bool priorityEnab
4242
await CreateConsumerGroup(db, channel, group);
4343
}
4444

45+
var consumer = Environment.MachineName;
46+
if (port.HasValue)
47+
{
48+
consumer += $"-{port}";
49+
}
50+
4551
while (true)
4652
{
4753
await Task.Delay(100);
@@ -54,28 +60,28 @@ public async Task SubscribeAsync(string channel, string group, bool priorityEnab
5460

5561
if (priorityEnabled)
5662
{
57-
if (await HandleGroupMessage(db, $"{channel}-{EventPriority.High}", group, received) > 0)
63+
if (await HandleGroupMessage(db, $"{channel}-{EventPriority.High}", group, consumer, received) > 0)
5864
{
5965
continue;
6066
}
6167

62-
if (await HandleGroupMessage(db, $"{channel}-{EventPriority.Medium}", group, received) > 0)
68+
if (await HandleGroupMessage(db, $"{channel}-{EventPriority.Medium}", group, consumer, received) > 0)
6369
{
6470
continue;
6571
}
6672

67-
await HandleGroupMessage(db, $"{channel}-{EventPriority.Low}", group, received);
73+
await HandleGroupMessage(db, $"{channel}-{EventPriority.Low}", group, consumer, received);
6874
}
6975
else
7076
{
71-
await HandleGroupMessage(db, channel, group, received);
77+
await HandleGroupMessage(db, channel, group, consumer, received);
7278
}
7379
}
7480
}
7581

76-
private async Task<int> HandleGroupMessage(IDatabase db, string channel, string group, Func<string, string, Task> received)
82+
private async Task<int> HandleGroupMessage(IDatabase db, string channel, string group, string consumer, Func<string, string, Task> received)
7783
{
78-
var entries = await db.StreamReadGroupAsync(channel, group, Environment.MachineName, count: 1);
84+
var entries = await db.StreamReadGroupAsync(channel, group, consumer, count: 1);
7985
foreach (var entry in entries)
8086
{
8187
_logger.LogInformation($"Consumer {Environment.MachineName} received: {channel} {entry.Values[0].Value}");

src/Plugins/BotSharp.Plugin.MongoStorage/BotSharp.Plugin.MongoStorage.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="Aspire.MongoDB.Driver" Version="8.0.1" />
15-
<PackageReference Include="MongoDB.Driver" Version="2.28.0" />
14+
<PackageReference Include="MongoDB.Driver" Version="3.0.0" />
1615
</ItemGroup>
1716

1817
<ItemGroup>

0 commit comments

Comments
 (0)