Fix most recent fix for ci test
This commit is contained in:
@@ -81,15 +81,19 @@ public class GatewayApiFixture : WebApplicationFactory<Program>, IAsyncLifetime
|
|||||||
await GatewayDbResetHelper.ResetAsync(migrateDb);
|
await GatewayDbResetHelper.ResetAsync(migrateDb);
|
||||||
}
|
}
|
||||||
|
|
||||||
using var scope = Services.CreateScope();
|
|
||||||
var redis = scope.ServiceProvider.GetRequiredService<IConnectionMultiplexer>();
|
|
||||||
var server = redis.GetServer(redis.GetEndPoints().First());
|
|
||||||
// Flush only the gateway test DB index — do not FlushAll (would wipe API test DB 1).
|
// Flush only the gateway test DB index — do not FlushAll (would wipe API test DB 1).
|
||||||
|
// Must run before Services is touched: host startup saturates the thread pool and
|
||||||
|
// causes StackExchange.Redis TimeoutException on FLUSHDB under CI load.
|
||||||
var dbIndex = 2;
|
var dbIndex = 2;
|
||||||
var cfg = RedisConnection.Split(',').FirstOrDefault(p => p.StartsWith("defaultDatabase=", StringComparison.OrdinalIgnoreCase));
|
var cfg = RedisConnection.Split(',').FirstOrDefault(p => p.StartsWith("defaultDatabase=", StringComparison.OrdinalIgnoreCase));
|
||||||
if (cfg is not null && int.TryParse(cfg.Split('=')[1], out var parsed))
|
if (cfg is not null && int.TryParse(cfg.Split('=')[1], out var parsed))
|
||||||
dbIndex = parsed;
|
dbIndex = parsed;
|
||||||
await server.FlushDatabaseAsync(dbIndex);
|
|
||||||
|
await using (var redis = await ConnectionMultiplexer.ConnectAsync(RedisConnection))
|
||||||
|
{
|
||||||
|
var server = redis.GetServer(redis.GetEndPoints().First());
|
||||||
|
await server.FlushDatabaseAsync(dbIndex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ConfigureClient(HttpClient client)
|
protected override void ConfigureClient(HttpClient client)
|
||||||
|
|||||||
@@ -129,10 +129,15 @@ public class ApiFixture : WebApplicationFactory<Program>, IAsyncLifetime
|
|||||||
VirtualHost = "vigilcare_test",
|
VirtualHost = "vigilcare_test",
|
||||||
});
|
});
|
||||||
|
|
||||||
using var scope = Services.CreateScope();
|
// Flush Redis before starting the host. Accessing Services boots many hosted
|
||||||
var redis = scope.ServiceProvider.GetRequiredService<IConnectionMultiplexer>();
|
// services that saturate the thread pool; FLUSHDB on the shared multiplexer
|
||||||
var server = redis.GetServer(redis.GetEndPoints().First());
|
// then times out waiting for a reply that already arrived (see SE.Redis
|
||||||
await server.FlushDatabaseAsync(1);
|
// TimeoutException: last-in/cur-in stuck, QueuedItems > 0).
|
||||||
|
await using (var redis = await ConnectionMultiplexer.ConnectAsync(RedisConnection))
|
||||||
|
{
|
||||||
|
var server = redis.GetServer(redis.GetEndPoints().First());
|
||||||
|
await server.FlushDatabaseAsync(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ConfigureClient(HttpClient client)
|
protected override void ConfigureClient(HttpClient client)
|
||||||
|
|||||||
Reference in New Issue
Block a user