gpt4 book ai didi

python-2.7 - 为什么apscheduler 使用get_jobs 空?

转载 作者:行者123 更新时间:2023-12-04 08:47:10 35 4
gpt4 key购买 nike

这是我的 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 运行作业
然后通过腻子使用另一个终端
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 为空
为什么???
多谢

最佳答案

您在运行 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()

关于python-2.7 - 为什么apscheduler 使用get_jobs 空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64255088/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com