Example #1
0
    def requeue(*args, **kwargs):
        """Inverval check for scheduled jobs."""
        job = args[0]

        queue = Scheduler.get_queue_for_job(build_scheduler, job)
        scheduler_log.info(
            f"job {job.id}:{job.func_name} re/queued to {queue.name}")

        return queue
Example #2
0
def schedule():
    """Creates scheduler object."""
    build_scheduler = Scheduler(connection=WorkerQueues.connection)
    log.info('scheduler created')

    cleanup_interval = int(os.getenv('RENKU_SVC_CLEANUP_INTERVAL', 60))
    log.info('cleanup interval set to {}'.format(cleanup_interval))

    build_scheduler.schedule(
        scheduled_time=datetime.utcnow(),
        queue_name=CLEANUP_QUEUE_FILES,
        func=cache_files_cleanup,
        interval=cleanup_interval,
        result_ttl=cleanup_interval + 1,
    )

    build_scheduler.schedule(
        scheduled_time=datetime.utcnow(),
        queue_name=CLEANUP_QUEUE_PROJECTS,
        func=cache_project_cleanup,
        interval=cleanup_interval,
        result_ttl=cleanup_interval + 1,
    )

    log_level = os.getenv('RQ_WORKER_LOG_LEVEL', 'INFO')
    setup_loghandlers(log_level)
    log.info('log level set to {}'.format(log_level))

    yield build_scheduler
Example #3
0
def schedule():
    """Creates scheduler object."""
    setup_loghandlers(level=DEPLOYMENT_LOG_LEVEL)

    build_scheduler = Scheduler(connection=WorkerQueues.connection)

    scheduler_log.info("scheduler created")

    cleanup_interval = int(os.getenv("RENKU_SVC_CLEANUP_INTERVAL", 60))
    scheduler_log.info("cleanup interval set to {}".format(cleanup_interval))

    def requeue(*args, **kwargs):
        """Inverval check for scheduled jobs."""
        job = args[0]

        queue = Scheduler.get_queue_for_job(build_scheduler, job)
        scheduler_log.info(
            f"job {job.id}:{job.func_name} re/queued to {queue.name}")

        return queue

    # NOTE: Patch scheduler to have requeing information on INFO log level.
    build_scheduler.get_queue_for_job = requeue

    build_scheduler.schedule(
        scheduled_time=datetime.utcnow(),
        queue_name=CLEANUP_QUEUE_FILES,
        func=cache_files_cleanup,
        interval=cleanup_interval,
        result_ttl=cleanup_interval + 1,
    )

    build_scheduler.schedule(
        scheduled_time=datetime.utcnow(),
        queue_name=CLEANUP_QUEUE_PROJECTS,
        func=cache_project_cleanup,
        interval=cleanup_interval,
        result_ttl=cleanup_interval + 1,
    )

    scheduler_log.info(f"log level set to {DEPLOYMENT_LOG_LEVEL}")
    yield build_scheduler
Example #4
0
def start_scheduler():
    """Build and start scheduler."""
    with schedule() as scheduler:
        scheduler_log.info("running scheduler")
        scheduler.run()
Example #5
0
def start_scheduler():
    """Build and start scheduler."""
    with schedule() as scheduler:
        log.info('running scheduler')
        scheduler.run()