mirror of
https://github.com/2dust/v2rayN.git
synced 2025-07-01 20:42:10 +00:00
Fix Observatory (#7437)
* Enables concurrency for observatory * Adds burst observatory for least load balancer
This commit is contained in:
parent
2056377f55
commit
9ddf0b42e7
1 changed files with 18 additions and 2 deletions
|
@ -1366,16 +1366,32 @@ public class CoreConfigV2rayService
|
||||||
|
|
||||||
private async Task<int> GenBalancer(V2rayConfig v2rayConfig, EMultipleLoad multipleLoad)
|
private async Task<int> GenBalancer(V2rayConfig v2rayConfig, EMultipleLoad multipleLoad)
|
||||||
{
|
{
|
||||||
if (multipleLoad is EMultipleLoad.LeastLoad or EMultipleLoad.LeastPing)
|
if (multipleLoad == EMultipleLoad.LeastPing)
|
||||||
{
|
{
|
||||||
var observatory = new Observatory4Ray
|
var observatory = new Observatory4Ray
|
||||||
{
|
{
|
||||||
subjectSelector = [Global.ProxyTag],
|
subjectSelector = [Global.ProxyTag],
|
||||||
probeUrl = AppHandler.Instance.Config.SpeedTestItem.SpeedPingTestUrl,
|
probeUrl = AppHandler.Instance.Config.SpeedTestItem.SpeedPingTestUrl,
|
||||||
probeInterval = "3m"
|
probeInterval = "3m",
|
||||||
|
enableConcurrency = true,
|
||||||
};
|
};
|
||||||
v2rayConfig.observatory = observatory;
|
v2rayConfig.observatory = observatory;
|
||||||
}
|
}
|
||||||
|
else if (multipleLoad == EMultipleLoad.LeastLoad)
|
||||||
|
{
|
||||||
|
var burstObservatory = new BurstObservatory4Ray
|
||||||
|
{
|
||||||
|
subjectSelector = [Global.ProxyTag],
|
||||||
|
pingConfig = new()
|
||||||
|
{
|
||||||
|
destination = AppHandler.Instance.Config.SpeedTestItem.SpeedPingTestUrl,
|
||||||
|
interval = "5m",
|
||||||
|
timeout = "30s",
|
||||||
|
sampling = 2,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
v2rayConfig.burstObservatory = burstObservatory;
|
||||||
|
}
|
||||||
var strategyType = multipleLoad switch
|
var strategyType = multipleLoad switch
|
||||||
{
|
{
|
||||||
EMultipleLoad.Random => "random",
|
EMultipleLoad.Random => "random",
|
||||||
|
|
Loading…
Reference in a new issue