void publish(String pubSubTopicUrl, FeatureRow row) throws IOException { TopicPath topicPath = PubsubClient.topicPathFromPath(pubSubTopicUrl); pubsubHelper.publish(topicPath, row); }
public int publish(TopicPath topicPath, Message message) throws IOException { List<OutgoingMessage> messages = Lists.newArrayList( new OutgoingMessage( message.toByteArray(), new HashMap<>(), System.currentTimeMillis(), null)); return getClient().publish(topicPath, messages); } }
public FeastMetricsPubSubSink(PipelineOptions pipelineOptions) { this.pubsubHelper = new FeastPubsubHelper(pipelineOptions); this.jobName = pipelineOptions.getJobName(); FeastMetricsPubSubSinkOptions sinkOptions = pipelineOptions.as(FeastMetricsPubSubSinkOptions.class); this.topicUrl = sinkOptions.getMetricsPubSubSinkTopicUrl(); String granularityString = Optional.ofNullable(sinkOptions.getMetricsPubSubSinkGranularity()).orElse("HOUR"); this.granularity = Granularity.Enum.valueOf(granularityString.toUpperCase()); Preconditions.checkNotNull(topicUrl, "FeastMetricsPubSubSink requires pubsub topic url"); }