2014-10-08 64 views
1

pub.pyPython redis pubsub:它在發佈時會發生什麼類型的變化?

import redis 
import datetime 
import time 

def main(): 
    redis_host = '10.235.13.29' 
     r = redis.client.StrictRedis(host=redis_host, port=6379) 
     while True: 
      now = datetime.datetime.now() 
      print 'Sending {0}'.format(now) 
      print 'data type is %s' % type(now) 
      r.publish('clock', now) 
      time.sleep(1) 

if __name__ == '__main__': 
    main() 

OUTPUT:

Sending 2014-10-08 13:10:58.338765 
data type is <type 'datetime.datetime'> 
Sending 2014-10-08 13:10:59.368707 
data type is <type 'datetime.datetime'> 
Sending 2014-10-08 13:11:00.378723 
data type is <type 'datetime.datetime'> 
Sending 2014-10-08 13:11:01.398132 
data type is <type 'datetime.datetime'> 
Sending 2014-10-08 13:11:02.419030 
data type is <type 'datetime.datetime'> 

sub.py

import redis 
import threading 
import time 
import datetime 

def callback(): 
    redis_host = '10.235.13.29' 
    r = redis.client.StrictRedis(host=redis_host, port=6379) 
    sub = r.pubsub() 
    sub.subscribe('clock') 
    while True: 
     for m in sub.listen(): 
      #print m #'Recieved: {0}'.format(m['data']) 
      now = datetime.datetime.now() 
      print 'Recieved: %s at %s' % (m['data'], now) 
      print 'Data type is %s' % type(m['data']) 
      dur = 1 
      print 'It took %s to receive' % dur 

def main(): 
    t = threading.Thread(target=callback) 
    t.setDaemon(True) 
    t.start() 
    while True: 
     print 'Waiting' 
     time.sleep(30) 

if __name__ == '__main__': 
    main() 

OUTPUT:

{}: ./sub.py 
Waiting 
Recieved: 1 at 2014-10-08 13:09:36.708088 
Data type is <type 'long'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:37.629664 at 2014-10-08 13:09:37.630479 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:38.630661 at 2014-10-08 13:09:38.631585 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:39.632663 at 2014-10-08 13:09:39.633480 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:40.633662 at 2014-10-08 13:09:40.634464 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:41.634665 at 2014-10-08 13:09:41.635557 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:42.635662 at 2014-10-08 13:09:42.636673 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:43.642665 at 2014-10-08 13:09:43.643441 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:44.643663 at 2014-10-08 13:09:44.644582 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:45.644667 at 2014-10-08 13:09:45.673734 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:46.672918 at 2014-10-08 13:09:46.673874 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:47.673913 at 2014-10-08 13:09:47.675014 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:48.674920 at 2014-10-08 13:09:48.675804 
Data type is <type 'str'> 
It took 1 to receive 
Recieved: 2014-10-08 13:09:49.675912 at 2014-10-08 13:09:49.677346 
Data type is <type 'str'> 

類型從datetime.datetime改變到str
是否有可能保存該類型,因爲我正在試圖找到持續時間我不能減法datetime obj到str?

回答

相關問題