def runningUpdateJobs(dbsession, logger):
    """ Runs the persistent georeference job for update georeference jobs

    :type sqlalchemy.orm.session.Session: dbsession
    :type logging.Logger: logger
    :return: int Number of processed jobs
    """
    logger.info('Check for unprocessed update georeference jobs ...')
    unprocessedJobs = Georeferenzierungsprozess.getUnprocessedObjectsOfTypeUpdate(dbsession)
    counter = 0
    for job in unprocessedJobs:
        logger.info('Start processing of a "update" georeference process with id - %s'%job.id)
        georefObj = Georeferenzierungsprozess.clearRaceConditions(job, dbsession)

        # get active georeference process and deactive him, if exist
        activeGeorefProcess = Georeferenzierungsprozess.getActualGeoreferenceProcessForMapId(georefObj.mapid, dbsession)
        mapObj = Map.by_id(georefObj.mapid, dbsession)

        if activeGeorefProcess:
            logger.info('Deactivate georeference processes with id %s ...'%activeGeorefProcess.id)
            deactivate(activeGeorefProcess, mapObj, dbsession, logger)

        logger.info('Activate georeference processes with id %s ...'%georefObj.id)
        activate(georefObj, mapObj, dbsession, logger)

        logger.info('Finish processing of a "update" georeference process with id - %s'%job.id)
        counter += 1

    return counter
def runningNewJobs(dbsession, logger):
    """ Runs the persistent georeference job for new georeference jobs

    :type sqlalchemy.orm.session.Session: dbsession
    :type logging.Logger: logger
    :return: int Number of processed jobs
    """
    logger.info('Check for unprocessed new georeference jobs ...')
    unprocessedJobs = Georeferenzierungsprozess.getUnprocessedObjectsOfTypeNew(
        dbsession)
    counter = 0
    for job in unprocessedJobs:
        logger.info(
            'Start processing of a "new" georeference process with id - %s' %
            job.id)
        georefObj = Georeferenzierungsprozess.clearRaceConditions(
            job, dbsession)
        mapObj = Map.by_id(georefObj.mapid, dbsession)
        activate(georefObj, mapObj, dbsession, logger)

        logger.info(
            'Finish processing of a "new" georeference process with id - %s' %
            job.id)
        counter += 1

    return counter
def runningNewJobs(dbsession, logger):
    """ Runs the persistent georeference job for new georeference jobs

    :type sqlalchemy.orm.session.Session: dbsession
    :type logging.Logger: logger
    :return: int Number of processed jobs
    """
    logger.info('Check for unprocessed new georeference jobs ...')
    unprocessedJobs = Georeferenzierungsprozess.getUnprocessedObjectsOfTypeNew(dbsession)
    counter = 0
    for job in unprocessedJobs:
        logger.info('Start processing of a "new" georeference process with id - %s'%job.id)
        georefObj = Georeferenzierungsprozess.clearRaceConditions(job, dbsession)
        mapObj = Map.by_id(georefObj.mapid, dbsession)
        activate(georefObj, mapObj, dbsession, logger)

        logger.info('Finish processing of a "new" georeference process with id - %s'%job.id)
        counter += 1

    return counter
def runningUpdateJobs(dbsession, logger):
    """ Runs the persistent georeference job for update georeference jobs

    :type sqlalchemy.orm.session.Session: dbsession
    :type logging.Logger: logger
    :return: int Number of processed jobs
    """
    logger.info('Check for unprocessed update georeference jobs ...')
    unprocessedJobs = Georeferenzierungsprozess.getUnprocessedObjectsOfTypeUpdate(
        dbsession)
    counter = 0
    for job in unprocessedJobs:
        logger.info(
            'Start processing of a "update" georeference process with id - %s'
            % job.id)
        georefObj = Georeferenzierungsprozess.clearRaceConditions(
            job, dbsession)

        # get active georeference process and deactive him, if exist
        activeGeorefProcess = Georeferenzierungsprozess.getActualGeoreferenceProcessForMapId(
            georefObj.mapid, dbsession)
        mapObj = Map.by_id(georefObj.mapid, dbsession)

        if activeGeorefProcess:
            logger.info('Deactivate georeference processes with id %s ...' %
                        activeGeorefProcess.id)
            deactivate(activeGeorefProcess, mapObj, dbsession, logger)

        logger.info('Activate georeference processes with id %s ...' %
                    georefObj.id)
        activate(georefObj, mapObj, dbsession, logger)

        logger.info(
            'Finish processing of a "update" georeference process with id - %s'
            % job.id)
        counter += 1

    return counter