switchInstance returns next instance instead of random
This commit is contained in:
parent
cac79c6959
commit
d9121aa5d8
|
@ -605,7 +605,7 @@ function switchInstance(url, customService) {
|
|||
if (customService) {
|
||||
const instancesList = options[options[customService].frontend]
|
||||
if (instancesList !== undefined) {
|
||||
resolve(`${utils.getRandomInstance(instancesList)}${url.pathname}${url.search}`)
|
||||
resolve(`${utils.getNextInstance(url.origin, instancesList)}${url.pathname}${url.search}`)
|
||||
}
|
||||
} else {
|
||||
for (const service in config.services) {
|
||||
|
@ -618,7 +618,7 @@ function switchInstance(url, customService) {
|
|||
resolve()
|
||||
return
|
||||
}
|
||||
resolve(`${utils.getRandomInstance(instancesList)}${url.pathname}${url.search}`)
|
||||
resolve(`${utils.getNextInstance(url.origin, instancesList)}${url.pathname}${url.search}`)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,23 @@ function getRandomInstance(instances) {
|
|||
return instances[~~(instances.length * Math.random())]
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} currentInstanceUrl
|
||||
* @param {Array.<T>} instances
|
||||
* @returns {T}
|
||||
*/
|
||||
function getNextInstance(currentInstanceUrl, instances) {
|
||||
const currentInstanceIndex = instances.indexOf(currentInstanceUrl);
|
||||
|
||||
if (currentInstanceIndex === -1){
|
||||
return getRandomInstance(instances);
|
||||
}
|
||||
|
||||
const nextInstanceIndex = (currentInstanceIndex + 1) % instances.length;
|
||||
|
||||
return instances[nextInstanceIndex];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} str
|
||||
*/
|
||||
|
@ -195,6 +212,7 @@ function ping(href) {
|
|||
|
||||
export default {
|
||||
getRandomInstance,
|
||||
getNextInstance,
|
||||
protocolHost,
|
||||
getList,
|
||||
getBlacklist,
|
||||
|
|
Loading…
Reference in New Issue