Skip to content

Instantly share code, notes, and snippets.

@zachjacobs
Created October 9, 2015 01:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zachjacobs/653cedc468e0c08085a1 to your computer and use it in GitHub Desktop.
Save zachjacobs/653cedc468e0c08085a1 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# ------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ------------------------------------------------------------------------
import time
import sys
import os
import stomp
user = os.getenv("ACTIVEMQ_USER") or "admin"
password = os.getenv("ACTIVEMQ_PASSWORD") or "password"
host = os.getenv("ACTIVEMQ_HOST") or "localhost"
port = os.getenv("ACTIVEMQ_PORT") or 61613
destination = sys.argv[1:2] or ["/topic/event"]
destination = destination[0]
class MyListener(object):
def __init__(self, conn):
self.conn = conn
self.count = 0
self.start = time.time()
def on_error(self, headers, message):
print('received an error %s' % message)
def on_message(self, headers, message):
if message == "SHUTDOWN":
diff = time.time() - self.start
print("Received %s in %f seconds" % (self.count, diff))
conn.disconnect()
sys.exit(0)
else:
if self.count==0:
self.start = time.time()
self.count += 1
if self.count % 1000 == 0:
print("Received %s messages." % self.count)
conn = stomp.Connection(host_and_ports = [(host, port)])
conn.set_listener('', MyListener(conn))
conn.start()
conn.connect(login=user,passcode=password)
conn.subscribe(destination=destination, ack='auto')
print("Waiting for messages...")
while 1:
time.sleep(10)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment