mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-27 21:46:04 +02:00
![twitter-team](/assets/img/avatar_default.png)
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.
57 lines
2.4 KiB
Scala
57 lines
2.4 KiB
Scala
package com.twitter.home_mixer.module
|
|
|
|
import com.google.inject.Provides
|
|
|
|
import com.twitter.adserver.{thriftscala => ads}
|
|
import com.twitter.conversions.DurationOps._
|
|
import com.twitter.finagle.mtls.authentication.ServiceIdentifier
|
|
import com.twitter.finagle.stats.StatsReceiver
|
|
import com.twitter.inject.TwitterModule
|
|
import com.twitter.storage.client.manhattan.kv.Guarantee
|
|
import com.twitter.storehaus.ReadableStore
|
|
import com.twitter.storehaus_internal.manhattan.ManhattanCluster
|
|
import com.twitter.storehaus_internal.manhattan.ManhattanClusters
|
|
import com.twitter.timelines.clients.ads.AdvertiserBrandSafetySettingsStore
|
|
import com.twitter.timelines.clients.manhattan.mhv3.ManhattanClientBuilder
|
|
import com.twitter.timelines.clients.manhattan.mhv3.ManhattanClientConfigWithDataset
|
|
import com.twitter.util.Duration
|
|
|
|
import javax.inject.Singleton
|
|
|
|
object AdvertiserBrandSafetySettingsStoreModule extends TwitterModule {
|
|
|
|
@Provides
|
|
@Singleton
|
|
def providesAdvertiserBrandSafetySettingsStore(
|
|
injectedServiceIdentifier: ServiceIdentifier,
|
|
statsReceiver: StatsReceiver
|
|
): ReadableStore[Long, ads.AdvertiserBrandSafetySettings] = {
|
|
val advertiserBrandSafetySettingsManhattanClientConfig = new ManhattanClientConfigWithDataset {
|
|
override val cluster: ManhattanCluster = ManhattanClusters.apollo
|
|
override val appId: String = "brand_safety_apollo"
|
|
override val dataset = "advertiser_brand_safety_settings"
|
|
override val statsScope: String = "AdvertiserBrandSafetySettingsManhattanClient"
|
|
override val defaultGuarantee = Guarantee.Weak
|
|
override val defaultMaxTimeout: Duration = 100.milliseconds
|
|
override val maxRetryCount: Int = 1
|
|
override val isReadOnly: Boolean = true
|
|
override val serviceIdentifier: ServiceIdentifier = injectedServiceIdentifier
|
|
}
|
|
|
|
val advertiserBrandSafetySettingsManhattanEndpoint = ManhattanClientBuilder
|
|
.buildManhattanEndpoint(advertiserBrandSafetySettingsManhattanClientConfig, statsReceiver)
|
|
|
|
val advertiserBrandSafetySettingsStore: ReadableStore[Long, ads.AdvertiserBrandSafetySettings] =
|
|
AdvertiserBrandSafetySettingsStore
|
|
.cached(
|
|
advertiserBrandSafetySettingsManhattanEndpoint,
|
|
advertiserBrandSafetySettingsManhattanClientConfig.dataset,
|
|
ttl = 60.minutes,
|
|
maxKeys = 100000,
|
|
windowSize = 10L
|
|
)(statsReceiver)
|
|
|
|
advertiserBrandSafetySettingsStore
|
|
}
|
|
}
|