mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-15 04:50:11 +08:00
Move RECONNECT_DELAY
to AbstractKeepAliveNetworkHandlerSelector
and set it to 0 in tests
This commit is contained in:
parent
cde13062d9
commit
5efced6167
@ -102,7 +102,7 @@ internal abstract class AbstractKeepAliveNetworkHandlerSelector<H : NetworkHandl
|
|||||||
exceptionCollector.collectException(lastFailure)
|
exceptionCollector.collectException(lastFailure)
|
||||||
}
|
}
|
||||||
if (attempted > 1) {
|
if (attempted > 1) {
|
||||||
delay(3000) // make it slower to avoid massive reconnection on network failure.
|
delay(RECONNECT_DELAY) // make it slower to avoid massive reconnection on network failure.
|
||||||
}
|
}
|
||||||
attempted += 1
|
attempted += 1
|
||||||
runImpl() // will create new instance (see the `else` branch).
|
runImpl() // will create new instance (see the `else` branch).
|
||||||
@ -138,6 +138,12 @@ internal abstract class AbstractKeepAliveNetworkHandlerSelector<H : NetworkHandl
|
|||||||
var DEFAULT_MAX_ATTEMPTS =
|
var DEFAULT_MAX_ATTEMPTS =
|
||||||
systemProp("mirai.network.handler.selector.max.attempts", Long.MAX_VALUE)
|
systemProp("mirai.network.handler.selector.max.attempts", Long.MAX_VALUE)
|
||||||
.coerceIn(1..Int.MAX_VALUE.toLongUnsigned()).toInt()
|
.coerceIn(1..Int.MAX_VALUE.toLongUnsigned()).toInt()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* millis
|
||||||
|
*/
|
||||||
|
@JvmField
|
||||||
|
var RECONNECT_DELAY = systemProp("mirai.network.reconnect.delay", 3000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -402,12 +402,4 @@ internal open class NettyNetworkHandler(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun initialState(): BaseStateImpl = StateInitialized()
|
override fun initialState(): BaseStateImpl = StateInitialized()
|
||||||
|
|
||||||
companion object {
|
|
||||||
/**
|
|
||||||
* millis
|
|
||||||
*/
|
|
||||||
@JvmField
|
|
||||||
var RECONNECT_DELAY = systemProp("mirai.network.reconnect.delay", 5000)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,6 @@ import net.mamoe.mirai.internal.network.handler.NetworkHandler
|
|||||||
import net.mamoe.mirai.internal.network.handler.state.LoggingStateObserver
|
import net.mamoe.mirai.internal.network.handler.state.LoggingStateObserver
|
||||||
import net.mamoe.mirai.internal.network.handler.state.SafeStateObserver
|
import net.mamoe.mirai.internal.network.handler.state.SafeStateObserver
|
||||||
import net.mamoe.mirai.internal.network.handler.state.StateObserver
|
import net.mamoe.mirai.internal.network.handler.state.StateObserver
|
||||||
import net.mamoe.mirai.internal.test.AbstractTest
|
|
||||||
import net.mamoe.mirai.internal.utils.subLogger
|
import net.mamoe.mirai.internal.utils.subLogger
|
||||||
import net.mamoe.mirai.utils.MiraiLogger
|
import net.mamoe.mirai.utils.MiraiLogger
|
||||||
import network.framework.components.TestEventDispatcherImpl
|
import network.framework.components.TestEventDispatcherImpl
|
||||||
@ -29,7 +28,7 @@ import org.junit.jupiter.api.TestInstance
|
|||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
|
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
|
||||||
internal abstract class AbstractMockNetworkHandlerTest : AbstractTest() {
|
internal abstract class AbstractMockNetworkHandlerTest : AbstractNetworkHandlerTest() {
|
||||||
protected open fun createNetworkHandlerContext() = TestNetworkHandlerContext(bot, logger, components)
|
protected open fun createNetworkHandlerContext() = TestNetworkHandlerContext(bot, logger, components)
|
||||||
protected open fun createNetworkHandler() = TestNetworkHandler(bot, createNetworkHandlerContext())
|
protected open fun createNetworkHandler() = TestNetworkHandler(bot, createNetworkHandlerContext())
|
||||||
|
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019-2021 Mamoe Technologies and contributors.
|
||||||
|
*
|
||||||
|
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||||
|
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||||
|
*
|
||||||
|
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.mamoe.mirai.internal.network.framework
|
||||||
|
|
||||||
|
import net.mamoe.mirai.internal.network.handler.selector.AbstractKeepAliveNetworkHandlerSelector
|
||||||
|
import net.mamoe.mirai.internal.test.AbstractTest
|
||||||
|
import org.junit.jupiter.api.AfterEach
|
||||||
|
import org.junit.jupiter.api.BeforeEach
|
||||||
|
|
||||||
|
internal sealed class AbstractNetworkHandlerTest : AbstractTest() {
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Defaults
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
fun be() {
|
||||||
|
AbstractKeepAliveNetworkHandlerSelector.RECONNECT_DELAY = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
fun af() {
|
||||||
|
AbstractKeepAliveNetworkHandlerSelector.RECONNECT_DELAY = 3000
|
||||||
|
}
|
||||||
|
}
|
@ -26,7 +26,6 @@ import net.mamoe.mirai.internal.network.handler.NetworkHandlerContextImpl
|
|||||||
import net.mamoe.mirai.internal.network.handler.NetworkHandlerFactory
|
import net.mamoe.mirai.internal.network.handler.NetworkHandlerFactory
|
||||||
import net.mamoe.mirai.internal.network.protocol.data.jce.SvcRespRegister
|
import net.mamoe.mirai.internal.network.protocol.data.jce.SvcRespRegister
|
||||||
import net.mamoe.mirai.internal.network.protocol.packet.login.StatSvc
|
import net.mamoe.mirai.internal.network.protocol.packet.login.StatSvc
|
||||||
import net.mamoe.mirai.internal.test.AbstractTest
|
|
||||||
import net.mamoe.mirai.internal.utils.subLogger
|
import net.mamoe.mirai.internal.utils.subLogger
|
||||||
import net.mamoe.mirai.utils.MiraiLogger
|
import net.mamoe.mirai.utils.MiraiLogger
|
||||||
import net.mamoe.mirai.utils.debug
|
import net.mamoe.mirai.utils.debug
|
||||||
@ -41,7 +40,7 @@ import kotlin.test.assertEquals
|
|||||||
* With real factory and components as in [QQAndroidBot.components].
|
* With real factory and components as in [QQAndroidBot.components].
|
||||||
*/
|
*/
|
||||||
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
|
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
|
||||||
internal abstract class AbstractRealNetworkHandlerTest<H : NetworkHandler> : AbstractTest() {
|
internal abstract class AbstractRealNetworkHandlerTest<H : NetworkHandler> : AbstractNetworkHandlerTest() {
|
||||||
abstract val factory: NetworkHandlerFactory<H>
|
abstract val factory: NetworkHandlerFactory<H>
|
||||||
abstract val network: NetworkHandler
|
abstract val network: NetworkHandler
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user