Example #1
0
def store_message(data):
    global t0, cnt
    raw_msg = data.split('\0', 2)
    del data
    now = datetime.datetime.utcnow()
    if len(raw_msg) == 2:
        action, sender = raw_msg[1].split(' ', 1)
        print "%s - %s   -> %d" % (sender, action, cnt)
        if action == 'start':
            senders[sender] = (cnt, now)
            print 'started %s at %s' % (sender, now)
        elif action == 'stop':
            try:
                oldcnt, tstart = senders[sender]
                r = cnt - oldcnt
                t = timedelta2int(now - tstart)
                tr = float(t) / float(r)
                print 'stopped %s at %s' % (sender, now)
                print " t/r: %.6f" % tr
                del senders[sender]
            except KeyError:
                print 'invalid stop for %s' % sender
    elif len(raw_msg) == 3:
        topic = raw_msg[0]
        cnt += 1
        try:
            h = cjson.decode(raw_msg[1])
            msg = SimpleMessage.from_parts(h)
            doc = msg.raw_header
            doc[b'_id'] = doc.pop(b'id').hex
            doc[b'topic'] = topic
            doc[b'ts'] = datetime2int(doc[b'ts'])
            doc[b'received'] = datetime2int(now)
            doc[b'payload'] = raw_msg[2]
            msg_collection.insert(doc)
        except cjson.DecodeError, ex:
            print >>sys.stderr, 'Invalid json in: %r' % raw_msg[1]
            del raw_msg
Example #2
0
## print

## sys.exit(0)

# warm-up cpu
for i in xrange(1000000):
    x = float(i) * 0.333
    f = x / 1.1

payload = {'cnt': 1, 'd':datetime.date.today()}
t0 = time.time()
for n in xrange(COUNT):
##     payload['cnt'] = n
    msg = SimpleMessage(type='test', parent=amsg, sender='Me', payload=payload)
    msg_parts = msg.parts
    m = SimpleMessage.from_parts(*msg_parts)
t1 = time.time()
td = t1 - t0
print "time: %.6f" % td
print " r/s: %.2f" % (COUNT / td)
tr = (td * 1000000) / COUNT
print " ยต/r: %.3f" % tr
print
## pprint(m.raw_header)
## pprint(m.raw_payload)


### Local Variables:
### mode: python
### End: