Задания не сохраняются в базе данных после вызова add_job () - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь использовать Flask-APScheduler для запуска некоторых отложенных заданий, и после установки и запуска приложения оно успешно создает таблицу заданий в базе данных Postgres, но не сохраняет там задания после того, как add_job() было успешно позвонил.

config.py (попытался использовать таблицу по умолчанию и имя таблицы, но работы пока не сохранены)

SCHEDULER_TIMEZONE = utc
SCHEDULER_API_ENABLED = False

SCHEDULER_JOBSTORES = {
    'default': SQLAlchemyJobStore(
        url=SQLALCHEMY_DATABASE_URI,
        tableschema=DB_SCHEMA,
        tablename='jobs'
    )
}

SCHEDULER_EXECUTORS = {
    'default': ThreadPoolExecutor(20),
    'processpool': ProcessPoolExecutor(5)
}

SCHEDULER_JOB_DEFAULTS = {
    'coalesce': False,
    'max_instances': 3
}

добавление части кода работы (Отображаются оба сообщения журнала, а тело except игнорируется. Также неявно пытались установить jobstore='default', но проблема все та же)

date = datetime.strptime(date_string, DATETIME_FORMAT)

try:
    app.logger.info('adding job')
    scheduler.add_job(
        job_id,
        publish_post,
        name=job_name,
        trigger='date',
        next_run_time=date,
        kwargs={
            'channel': channel,
            'post': post
        }
    )
    app.logger.info('job added')

except Exception as e:
    app.logger.error(e)
    sentry.captureException()
    return {
        'status': 'FAILED',
        'message': 'Can not add job ({})'.format(job_name)
    }

job.py (тестовое задание для запуска)

def publish_post(channel, post):
    app.logger.info('{}: {}'.format(channel, post.text))

UPD:

При включенном режиме DEBUG у меня появляются следующие сообщения:

gunicorn_scheduler_1    | 2019-04-04 07:07:21 - INFO     - Scheduler started
gunicorn_scheduler_1    | 2019-04-04 07:07:21 - DEBUG    - No jobs; waiting until a job is added

но после add_job() вызов между adding job & job added У меня есть дополнительное сообщение от APScheduler:

2019-04-04 07:09:46 - INFO     - Adding job tentatively -- it will be properly scheduled when the scheduler starts

Но первое сообщение говорит о том, что планировщик уже запущен.

...