Ejemplo n.º 1
0
    def setup_run(self, hydrodataset, **kwargs):
        from paegan.logger.redis_handler import RedisHandler
        self.redis_url = kwargs.get("redis_url")
        self.redis_log_channel = kwargs.get("redis_log_channel")
        self.redis_results_channel = kwargs.get("redis_results_channel")
        rhandler = RedisHandler(self.redis_log_channel, self.redis_url)
        rhandler.setLevel(logging.PROGRESS)
        logger.addHandler(rhandler)

        super(DistributedModelController,
              self).setup_run(hydrodataset, **kwargs)
Ejemplo n.º 2
0
def particle_runner(part, model):

    from paegan.logger import logger
    logger.setLevel(logging.PROGRESS)

    from paegan.logger.redis_handler import RedisHandler
    rhandler = RedisHandler(model.redis_log_channel, model.redis_url)
    rhandler.setLevel(logging.PROGRESS)
    logger.addHandler(rhandler)

    try:
        redis_connection = redis.from_url(model.redis_url)
        forcer = BaseForcer(
            model.hydrodataset,
            particle=part,
            common_variables=model.common_variables,
            times=model.times,
            start_time=model.start,
            models=model._models,
            release_location_centroid=model.reference_location.point,
            usebathy=model._use_bathymetry,
            useshore=model._use_shoreline,
            usesurface=model._use_seasurface,
            reverse_distance=model.reverse_distance,
            bathy_path=model.bathy_path,
            shoreline_path=model.shoreline_path,
            shoreline_feature=model.shoreline_feature,
            time_method=model.time_method,
            redis_url=model.redis_url,
            redis_results_channel=model.redis_results_channel,
            shoreline_index_buffer=model.shoreline_index_buffer)
        forcer.run()
    except Exception:
        logger.exception(traceback.format_exc())
        redis_connection.publish(
            model.redis_results_channel,
            json.dumps({
                "status": "FAILED",
                "uid": part.uid
            }))
    else:
        redis_connection.publish(
            model.redis_results_channel,
            json.dumps({
                "status": "COMPLETED",
                "uid": part.uid
            }))