def METHOD_NAME(self, instance, vehicle_positions, **kwargs):
    futures = []
    # TODO define new parameter forseti_pool_size ?
    pool = gevent.pool.Pool(instance.realtime_pool_size)
    # Copy the current request context to be used in greenlet
    reqctx = utils.copy_flask_request_context()
    def worker(vehicle_journey_position, args):
        # Use the copied request context in greenlet
        with utils.copy_context_in_greenlet_stack(reqctx):
            return vehicle_journey_position, self.get_response(args)
    for vehicle_position in vehicle_positions:
        for vehicle_journey_position in vehicle_position.vehicle_journey_positions:
            args = self.get_codes('vehicle_journey', vehicle_journey_position.vehicle_journey.codes)
            if args:
                futures.append(pool.spawn(worker, vehicle_journey_position, args))
    for future in gevent.iwait(futures):
        vehicle_journey_position, response = future.get()
        self._vehicle_journey_position(vehicle_journey_position, response)