Skip to content

Commit

Permalink
feat: allow overriding default request timeouts (#1117)
Browse files Browse the repository at this point in the history
* feat: allow overriding default request timeouts

* update lavaplayer to 2.2.3
  • Loading branch information
topi314 authored Feb 1, 2025
1 parent f7e25cc commit 22838cc
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 13 deletions.
4 changes: 4 additions & 0 deletions LavalinkServer/application.yml.example
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ lavalink:
#proxyPort: 3128 # Proxy port, 3128 is the default for squidProxy
#proxyUser: "" # Optional user for basic authentication fields, leave blank if you don't use basic auth
#proxyPassword: "" # Password for basic authentication
timeouts:
connectTimeoutMs: 3000
connectionRequestTimeoutMs: 3000
socketTimeoutMs: 3000

metrics:
prometheus:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import com.sedmelluq.discord.lavaplayer.source.soundcloud.*
import com.sedmelluq.discord.lavaplayer.source.twitch.TwitchStreamAudioSourceManager
import com.sedmelluq.discord.lavaplayer.source.vimeo.VimeoAudioSourceManager
import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager
import com.sedmelluq.discord.lavaplayer.tools.io.HttpClientTools
import com.sedmelluq.discord.lavaplayer.track.playback.NonAllocatingAudioFrameBuffer
import com.sedmelluq.lava.extensions.youtuberotator.YoutubeIpRotatorSetup
import com.sedmelluq.lava.extensions.youtuberotator.planner.*
Expand Down Expand Up @@ -50,6 +51,10 @@ class AudioPlayerConfiguration {
audioPlayerManagerConfigurations: Collection<AudioPlayerManagerConfiguration>,
mediaContainerProbes: Collection<MediaContainerProbe>
): AudioPlayerManager {
serverConfig.timeouts?.let {
HttpClientTools.setDefaultRequestTimeout(it.connectTimeoutMs, it.connectionRequestTimeoutMs, it.socketTimeoutMs)
}

val audioPlayerManager = DefaultAudioPlayerManager()

if (serverConfig.isGcWarnings) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,11 @@ class ServerConfig {
var youtubeConfig: YoutubeConfig? = null
var httpConfig: HttpConfig? = null
var filters: Map<String, Boolean> = mapOf()
var timeouts: TimeoutsConfig? = null
}

class TimeoutsConfig {
var connectTimeoutMs: Int = 3000
var connectionRequestTimeoutMs: Int = 3000
var socketTimeoutMs: Int = 3000
}
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ allprojects {
mavenLocal() // useful for developing
maven("https://m2.dv8tion.net/releases")
maven("https://maven.lavalink.dev/releases")
maven("https://maven.lavalink.dev/snapshots")
jcenter()
maven("https://jitpack.io") // build projects directly from GitHub
}
Expand Down
26 changes: 13 additions & 13 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -25,23 +25,23 @@ fun VersionCatalogBuilder.spring() {

library("spring-websocket", "org.springframework", "spring-websocket").version("6.1.9")

library("spring-boot", "org.springframework.boot", "spring-boot").versionRef("spring-boot")
library("spring-boot-web", "org.springframework.boot", "spring-boot-starter-web").versionRef("spring-boot")
library("spring-boot-undertow", "org.springframework.boot", "spring-boot-starter-undertow") .versionRef("spring-boot")
library("spring-boot-test", "org.springframework.boot", "spring-boot-starter-test") .versionRef("spring-boot")
library("spring-boot", "org.springframework.boot", "spring-boot").versionRef("spring-boot")
library("spring-boot-web", "org.springframework.boot", "spring-boot-starter-web").versionRef("spring-boot")
library("spring-boot-undertow", "org.springframework.boot", "spring-boot-starter-undertow").versionRef("spring-boot")
library("spring-boot-test", "org.springframework.boot", "spring-boot-starter-test").versionRef("spring-boot")

bundle("spring", listOf("spring-websocket", "spring-boot-web", "spring-boot-undertow"))
}

fun VersionCatalogBuilder.voice() {
version("lavaplayer", "2.2.2")
version("lavaplayer", "2.2.3")
version("koe", "2.0.3-rc2")

library("lavaplayer", "dev.arbjerg", "lavaplayer").versionRef("lavaplayer")
library("lavaplayer", "dev.arbjerg", "lavaplayer").versionRef("lavaplayer")
library("lavaplayer-ip-rotator", "dev.arbjerg", "lavaplayer-ext-youtube-rotator").versionRef("lavaplayer")
library("lavadsp", "dev.arbjerg", "lavadsp").version("0.7.8")
library("lavadsp", "dev.arbjerg", "lavadsp").version("0.7.8")

library("koe", "moe.kyokobot.koe", "core").versionRef("koe")
library("koe", "moe.kyokobot.koe", "core").versionRef("koe")
library("koe-udpqueue", "moe.kyokobot.koe", "ext-udpqueue").versionRef("koe")

version("udpqueue", "0.2.7")
Expand All @@ -56,7 +56,7 @@ fun VersionCatalogBuilder.voice() {
fun VersionCatalogBuilder.metrics() {
version("prometheus", "0.16.0")

library("metrics", "io.prometheus", "simpleclient").versionRef("prometheus")
library("metrics", "io.prometheus", "simpleclient").versionRef("prometheus")
library("metrics-hotspot", "io.prometheus", "simpleclient_hotspot").versionRef("prometheus")
library("metrics-logback", "io.prometheus", "simpleclient_logback").versionRef("prometheus")
library("metrics-servlet", "io.prometheus", "simpleclient_servlet").versionRef("prometheus")
Expand All @@ -67,7 +67,7 @@ fun VersionCatalogBuilder.metrics() {
fun VersionCatalogBuilder.common() {
version("kotlin", "2.0.0")

library("kotlin-reflect", "org.jetbrains.kotlin", "kotlin-reflect").versionRef("kotlin")
library("kotlin-reflect", "org.jetbrains.kotlin", "kotlin-reflect").versionRef("kotlin")
library("kotlin-stdlib-jdk8", "org.jetbrains.kotlin", "kotlin-stdlib-jdk8").versionRef("kotlin")

library("kotlinx-serialization-json", "org.jetbrains.kotlinx", "kotlinx-serialization-json").version("1.7.0")
Expand All @@ -76,9 +76,9 @@ fun VersionCatalogBuilder.common() {
library("xmlutil-jdk", "io.github.pdvrieze.xmlutil", "core-jdk").version("0.90.3")
library("xmlutil-serialization", "io.github.pdvrieze.xmlutil", "serialization-jvm").version("0.90.3")

library("logback", "ch.qos.logback", "logback-classic").version("1.5.6")
library("sentry-logback", "io.sentry", "sentry-logback").version("7.10.0")
library("oshi", "com.github.oshi", "oshi-core").version("6.4.11")
library("logback", "ch.qos.logback", "logback-classic").version("1.5.6")
library("sentry-logback", "io.sentry", "sentry-logback").version("7.10.0")
library("oshi", "com.github.oshi", "oshi-core").version("6.4.11")
}

fun VersionCatalogBuilder.other() {
Expand Down

0 comments on commit 22838cc

Please sign in to comment.