java - doseq with KafkaStream evaluates previous item -
i want pop messages kafkastream , process them. kafkastream implements java.lang.iterable thought put stream doseq , consume messages come in. happens message passed body of doseq when message added kafkastream, 'pushing' out.
(doseq [msg (map unpack-message ^kafkastream stream)] (handler msg)) what have implement done in https://github.com/pingles/clj-kafka/blob/master/src/clj_kafka/consumer/zk.clj lazy-iterate , build seq using iterator. works have no idea why, explain?
one other more weird thing if put log line in unpack-message function see evaluated when message comes in. message unpacked in lazy function map not taken doseq event though kind of sitting in there waiting. don't understand.
Comments
Post a Comment