import requests
import json
import zmq

def get_headers (url,timeout):
    try:
        r = requests.get (url,timeout=timeout)
        return json.dumps ([{'url':url}, 
                            {'code':r.status_code}, 
                             r.headers ])
    except (requests.ConnectionError,requests.HTTPError,requests.Timeout) as e:
        return json.dumps ([{'url':url},{'error':str(e)}])

context = zmq.Context ()
socket = context.socket (zmq.REP);
socket.connect ("tcp://localhost:5555")

while True:
    msg = socket.recv()
    job = json.loads (msg)
    print job["url"], job["timeout"]
    socket.send (get_headers (url=job['url'],timeout=job['timeout']))
