(1 to 3)
.map{ i => println(s"A: $i"); i }
.map{ i => println(s"B: $i"); i }
.map{ i => println(s"C: $i"); i }
A:1
A:2
A:3
B:1
B:2
B:3
C:1
C:2
C:3
普通のScalaのコレクション
Slide 7
Slide 7 text
Source(1 to 3)
.map{ i => println(s"A: $i"); i }
.map{ i => println(s"B: $i"); i }
.map{ i => println(s"C: $i"); i }
.runWith(Sink.ignore)
A:1
A:2
B:1
A:3
B:2
C:1
B:3
C:2
C:3
Akka Stream
〜Publish編〜
val msg = ByteString.copyFromUtf8(jsonStr)
val pubSubMsg =
PubsubMessage.newBuilder.setData(msg).build()
val resultF: ApiFuture[String] =
publisher.publish(pubSubMsg)
Slide 12
Slide 12 text
〜Subscribe編〜
このインタフェースを実装する
public interface MessageReceiver {
void receiveMessage(
final PubsubMessage message,
final AckReplyConsumer consumer
);
}
Slide 13
Slide 13 text
〜Subscribe編〜
messageを処理してconsumer.ack()で終わり
public interface MessageReceiver {
void receiveMessage(
final PubsubMessage message,
final AckReplyConsumer consumer
);
}
Slide 14
Slide 14 text
public interface MessageReceiver {
void receiveMessage(
final PubsubMessage message,
final AckReplyConsumer consumer
);
}
〜Subscribe編〜
1件のmessageをどう処理するか、という処理モデル