mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-27 21:46:04 +02:00
78 lines
3.3 KiB
Scala
78 lines
3.3 KiB
Scala
package com.twitter.home_mixer.module
|
|
|
|
import com.google.inject.Provides
|
|
import com.twitter.clientapp.{thriftscala => ca}
|
|
import com.twitter.home_mixer.param.HomeMixerInjectionNames.CandidateFeaturesScribeEventPublisher
|
|
import com.twitter.home_mixer.param.HomeMixerInjectionNames.CommonFeaturesScribeEventPublisher
|
|
import com.twitter.home_mixer.param.HomeMixerInjectionNames.MinimumFeaturesScribeEventPublisher
|
|
import com.twitter.inject.TwitterModule
|
|
import com.twitter.logpipeline.client.EventPublisherManager
|
|
import com.twitter.logpipeline.client.common.EventPublisher
|
|
import com.twitter.logpipeline.client.serializers.EventLogMsgTBinarySerializer
|
|
import com.twitter.logpipeline.client.serializers.EventLogMsgThriftStructSerializer
|
|
import com.twitter.timelines.suggests.common.poly_data_record.{thriftjava => pldr}
|
|
import com.twitter.timelines.timeline_logging.{thriftscala => tl}
|
|
import javax.inject.Named
|
|
import javax.inject.Singleton
|
|
|
|
object ScribeEventPublisherModule extends TwitterModule {
|
|
|
|
val ClientEventLogCategory = "client_event"
|
|
val ServedCandidatesLogCategory = "home_timeline_served_candidates_flattened"
|
|
val ScoredCandidatesLogCategory = "home_timeline_scored_candidates"
|
|
val ServedCommonFeaturesLogCategory = "tq_served_common_features_offline"
|
|
val ServedCandidateFeaturesLogCategory = "tq_served_candidate_features_offline"
|
|
val ServedMinimumFeaturesLogCategory = "tq_served_minimum_features_offline"
|
|
|
|
@Provides
|
|
@Singleton
|
|
def providesClientEventsScribeEventPublisher: EventPublisher[ca.LogEvent] = {
|
|
val serializer = EventLogMsgThriftStructSerializer.getNewSerializer[ca.LogEvent]()
|
|
EventPublisherManager.buildScribeLogPipelinePublisher(ClientEventLogCategory, serializer)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
@Named(CommonFeaturesScribeEventPublisher)
|
|
def providesCommonFeaturesScribeEventPublisher: EventPublisher[pldr.PolyDataRecord] = {
|
|
val serializer = EventLogMsgTBinarySerializer.getNewSerializer
|
|
EventPublisherManager.buildScribeLogPipelinePublisher(
|
|
ServedCommonFeaturesLogCategory,
|
|
serializer)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
@Named(CandidateFeaturesScribeEventPublisher)
|
|
def providesCandidateFeaturesScribeEventPublisher: EventPublisher[pldr.PolyDataRecord] = {
|
|
val serializer = EventLogMsgTBinarySerializer.getNewSerializer
|
|
EventPublisherManager.buildScribeLogPipelinePublisher(
|
|
ServedCandidateFeaturesLogCategory,
|
|
serializer)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
@Named(MinimumFeaturesScribeEventPublisher)
|
|
def providesMinimumFeaturesScribeEventPublisher: EventPublisher[pldr.PolyDataRecord] = {
|
|
val serializer = EventLogMsgTBinarySerializer.getNewSerializer
|
|
EventPublisherManager.buildScribeLogPipelinePublisher(
|
|
ServedMinimumFeaturesLogCategory,
|
|
serializer)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
def providesServedCandidatesScribeEventPublisher: EventPublisher[tl.ServedEntry] = {
|
|
val serializer = EventLogMsgThriftStructSerializer.getNewSerializer[tl.ServedEntry]()
|
|
EventPublisherManager.buildScribeLogPipelinePublisher(ServedCandidatesLogCategory, serializer)
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
def provideScoredCandidatesScribeEventPublisher: EventPublisher[tl.ScoredCandidate] = {
|
|
val serializer = EventLogMsgThriftStructSerializer.getNewSerializer[tl.ScoredCandidate]()
|
|
EventPublisherManager.buildScribeLogPipelinePublisher(ScoredCandidatesLogCategory, serializer)
|
|
}
|
|
}
|