|  | @@ -20,6 +20,7 @@ from __future__ import absolute_import
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import threading
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +from datetime import datetime
 | 
	
		
			
				|  |  |  from heapq import heappush, heappop
 | 
	
		
			
				|  |  |  from itertools import islice
 | 
	
		
			
				|  |  |  from time import time
 | 
	
	
		
			
				|  | @@ -44,7 +45,7 @@ HEARTBEAT_DRIFT_MAX = 16
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  DRIFT_WARNING = """\
 | 
	
		
			
				|  |  |  Substantial drift from %s may mean clocks are out of sync.  Current drift is
 | 
	
		
			
				|  |  | -%s seconds (including message overhead).\
 | 
	
		
			
				|  |  | +%s seconds.  [orig: %s recv: %s]
 | 
	
		
			
				|  |  |  """
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  logger = get_logger(__name__)
 | 
	
	
		
			
				|  | @@ -116,7 +117,9 @@ class Worker(AttributeDict):
 | 
	
		
			
				|  |  |              return
 | 
	
		
			
				|  |  |          drift = abs(int(received) - int(timestamp))
 | 
	
		
			
				|  |  |          if drift > HEARTBEAT_DRIFT_MAX:
 | 
	
		
			
				|  |  | -            warn(DRIFT_WARNING, self.hostname, drift)
 | 
	
		
			
				|  |  | +            warn(DRIFT_WARNING, self.hostname, drift,
 | 
	
		
			
				|  |  | +                 datetime.fromtimestamp(received),
 | 
	
		
			
				|  |  | +                 datetime.fromtimestamp(timestamp))
 | 
	
		
			
				|  |  |          heartbeats, hbmax = self.heartbeats, self.heartbeat_max
 | 
	
		
			
				|  |  |          if not heartbeats or (received and received > heartbeats[-1]):
 | 
	
		
			
				|  |  |              heappush(heartbeats, received)
 |