<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def start_request(req, collect=False, collector_addr='tcp://127.0.0.2:2345', prefix='my_app'):
 """ register a request registers a request in the internal request table, optionally also sends it to the collector :param req: request, can be mostly any hash-able object :param collect: whether to send the request started event to the collector (bool) :param collector_addr: collector address, in zeromq format (string, default tcp://127.0.0.2:2345) :param prefix: label under which to register the request (string, default my_app) """


    if collect:
        collector = get_context().socket(zmq.PUSH)

        collector.connect(collector_addr)
        collector.send_multipart([prefix, ''])
        collector.close()

    requests[hash(req)] = time()