【问题标题】:why apscheduler use get_jobs empty?为什么 apscheduler 使用 get_jobs 为空?
【发布时间】:2020-10-08 02:50:35
【问题描述】:

这是我的 test.py

from datetime import datetime, timedelta
import sys
import os

from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.jobstores.redis import RedisJobStore

jobstores = {
        #'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')
        'default': RedisJobStore(host='localhost', port=6379)
}
scheduler = BlockingScheduler(jobstores=jobstores)

def alarm(time):
    print('Alarm! This alarm was scheduled at %s.' % time)


if __name__ == '__main__':
    alarm_time = datetime.now() + timedelta(seconds=10)
    scheduler.add_job(alarm, 'interval', seconds=10, args=[datetime.now()], name='alarm_test')
    print('To clear the alarms, delete the example.sqlite file.')
    print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))

    try:
        scheduler.start()
    except (KeyboardInterrupt, SystemExit):
        pass

我成功完成了 python test.py 运行作业

然后通过putty使用另一个终端

python
>>> import redis
>>> from test import *
>>> r = redis.Redis()
>>> r.keys()
>>> r.zrange('apscheduler.run_times',0,1)

它将找到工作 ID 57841c0ee05249efb466882265f2c495

>>> ret = scheduler.get_jobs(jobstore='default')

ret 为空 为什么???

非常感谢

【问题讨论】:

    标签: python-2.7 apscheduler


    【解决方案1】:

    您在运行get_jobs() 之前是否启动了调度程序?如果没有,它只会列出暂定的作业。这就是你没有看到这份工作的原因。

    试试这个:

    from apscheduler.schedulers.background import BackgroundScheduler
    from apscheduler.jobstores.redis import RedisJobStore
    
    scheduler = BackgroundScheduler()
    scheduler.add_jobstore('redis', host='localhost', port=6379)
    scheduler.start(paused=True)
    scheduler.print_jobs()
    

    【讨论】:

    • get_jobs 必须在同一进程中运行吗?我正在做的是使用 2 终端 1. (putty A) python test.py 运行作业 2. (putty B) 然后使用 ''' python >>> import redis >>> from test import * >> > ret = scheduler.get_jobs(jobstore='default') ''' 我想从其他终端get_jobs
    • 我已经编辑了答案以包含一个替代脚本来打印作业。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2021-07-14
    • 2013-10-30
    • 2015-06-30
    • 2016-07-11
    相关资源
    最近更新 更多