调用add_job()后,作业未存储在数据库中

2024-06-07 12:03:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用flaskapscheduler来运行一些延迟的作业,在安装并运行应用程序之后,它成功地在Postgres数据库中创建jobs表,但在成功调用add_job()之后,不会在那里保存作业。在

配置.py(尝试使用默认的tableschema和tablename,但仍然没有存储作业)

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',但仍然是相同的问题)

^{pr2}$

作业.py(要运行的测试作业)

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

升级版:

在启动调试模式时,我有以下消息:

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

但是在adding job&;job added之间的add_job()调用之后,APScheduler有一条额外的消息:

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

但是第一条消息告诉调度程序已经启动。在


Tags: pyaddfalsedefault消息作业jobschannel

热门问题