the-algorithm/home-mixer/server/src/main/scala/com/twitter/home_mixer/module/StaleTweetsCacheModule.scala
twitter-team ef4c5eb65e Twitter Recommendation Algorithm
Please note we have force-pushed a new initial commit in order to remove some publicly-available Twitter user information. Note that this process may be required in the future.
2023-03-31 17:36:31 -05:00

38 lines
1.3 KiB
Scala

package com.twitter.home_mixer.module
import com.google.inject.Provides
import com.google.inject.name.Named
import com.twitter.conversions.DurationOps._
import com.twitter.finagle.memcached.{Client => MemcachedClient}
import com.twitter.finagle.mtls.authentication.ServiceIdentifier
import com.twitter.finagle.stats.StatsReceiver
import com.twitter.hashing.KeyHasher
import com.twitter.home_mixer.param.HomeMixerInjectionNames.StaleTweetsCache
import com.twitter.inject.TwitterModule
import com.twitter.product_mixer.shared_library.memcached_client.MemcachedClientBuilder
import javax.inject.Singleton
object StaleTweetsCacheModule extends TwitterModule {
@Singleton
@Provides
@Named(StaleTweetsCache)
def providesCache(
serviceIdentifier: ServiceIdentifier,
statsReceiver: StatsReceiver
): MemcachedClient = {
MemcachedClientBuilder.buildMemcachedClient(
destName = "/srv#/prod/local/cache/staletweetscache:twemcaches",
numTries = 3,
requestTimeout = 200.milliseconds,
globalTimeout = 500.milliseconds,
connectTimeout = 200.milliseconds,
acquisitionTimeout = 200.milliseconds,
serviceIdentifier = serviceIdentifier,
statsReceiver = statsReceiver,
failureAccrualPolicy = None,
keyHasher = Some(KeyHasher.FNV1_32)
)
}
}