def activity_event_callback(msg): '''Callback fonction for asynchronous consumption of activity messages''' # Verify the message type assert(msg.topic == ActivityDetectionEventsConsumer.topic_activity_detection_events) # Deserialize the message from avro event = ActivityDetectionEvent.from_serialized(msg.value) print(str(event)) # Update the user activity cache user_activity_cache[event.user_id] = event.activity_label, event.timestampBegin, event.timestampBackend
consumer = KafkaConsumer(args.topic, group_id='my_group', bootstrap_servers=[args.kafka + ':9092']) print "Listening on topic:", args.topic for message in consumer: # message value is raw byte string -- decode if necessary! # e.g., for unicode: `message.value.decode('utf-8')` if args.raw: value = message.value else: curTime = int(round(time.time() * 1000)) activity = ActivityDetectionEvent.from_serialized(message.value) if startTime is None: startTime = activity.timestampBegin totalMsg += 1 timeTaken = curTime - activity.timestampBegin halftimeTaken = activity.timestampBackend - activity.timestampBegin totalTimeTaken += timeTaken rightPredict = True if activity.activity_label == activity.actual_activity_label else False if rightPredict: totalCorrect += 1 value = "user={0}, activity={1}, time-taken={2}ms, half-time={3}ms, correct={4}, total={5}, rate={6:.2f}/s, avg. speed={7:.2f}ms, prec={8:.2f}".format( activity.user_id, activity.activity_label,