我需要限制从rabbitmq队列中消费消息的速率.
我发现了很多建议,但大多数都提供了使用预取选项.但是这个选项不能满足我的需要.即使我将预取设置为1,速率也是大约6000条消息/秒.这对消费者来说太多了.
我需要限制每秒大约70到200条消息.这意味着每5-14ms消耗一条消息.没有同步消息.
我正在使用带有amqp.node库的Node.JS.
我正在使用 Kotlin 创建 Android 应用程序。
我使用的是Mobile buy SDK版本3.6.0
implementation 'com.shopify.mobilebuysdk:buy3:3.6.0'
Run Code Online (Sandbox Code Playgroud)
我用以下代码构建图形客户端:
graphClient = GraphClient.build(this,
BuildConfig.SHOP_DOMAIN,
BuildConfig.API_KEY
) {
httpClient = okHttpClient
httpCache(cacheDir) {
cacheMaxSizeBytes = 10 * 1024 * 1024
defaultCachePolicy = HttpCachePolicy.Default.CACHE_FIRST.expireAfter(5, TimeUnit.MINUTES)
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序在启动时因错误而崩溃
java.lang.NoSuchMethodError: No static method create(Lokhttp3/internal/io/FileSystem;Ljava/io/File;IIJ)Lokhttp3/internal/cache/DiskLruCache; in class Lokhttp3/internal/cache/DiskLruCache; or its super classes (declaration of 'okhttp3.internal.cache.DiskLruCache' appears in /data/app/com.example.app/base.apk)
at com.shopify.buy3.internal.cache.DiskLruCacheStore.<init>(DiskLruCacheStore.kt:43)
at com.shopify.buy3.GraphClient$Config.build(GraphClient.kt:189)
at com.shopify.buy3.GraphClient$Companion.build(GraphClient.kt:131)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?