Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x python apschedular RediJobstore未在redis缓存中存储作业_Python 3.x_Redis_Apscheduler - Fatal编程技术网

Python 3.x python apschedular RediJobstore未在redis缓存中存储作业

Python 3.x python apschedular RediJobstore未在redis缓存中存储作业,python-3.x,redis,apscheduler,Python 3.x,Redis,Apscheduler,这就是我的python代码:所有作业都会在正确的时间触发,但不会存储为redis缓存。如果重新启动程序,则无法计划挂起的作业。我做错了什么 from apscheduler.jobstores.redis import RedisJobStore from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor if __name__ == '__main__': jobstores = {

这就是我的python代码:所有作业都会在正确的时间触发,但不会存储为redis缓存。如果重新启动程序,则无法计划挂起的作业。我做错了什么

from apscheduler.jobstores.redis import RedisJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor

if __name__ == '__main__':

    jobstores = {
        'redis': RedisJobStore(jobs_key='dispatched_trips_jobs', run_times_key='dispatched_trips_running', host='localhost', port=6379)
    }
    executors = {
        'default': ThreadPoolExecutor(100),
        'processpool': ProcessPoolExecutor(5)
    }

    scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors)


    scheduler.start()

    while True:
        pass
换行

jobstores = {
    'redis': RedisJobStore(jobs_key='dispatched_trips_jobs', run_times_key='dispatched_trips_running', host='localhost', port=6379)
}

工作正常

更改行

jobstores = {
    'redis': RedisJobStore(jobs_key='dispatched_trips_jobs', run_times_key='dispatched_trips_running', host='localhost', port=6379)
}


工作正常

我没有看到任何添加作业的代码。此代码段似乎不能代表您的实际应用程序。您确定要将作业添加到redis作业存储区而不是默认的作业存储区吗?作业是从其他代码段添加的。所有的工作都很好。这部分没问题。问题是作业并没有保存到redis,以便在程序重新启动时可以再次安排作业。你真的需要种子作业是如何添加的吗?是的,因为我怀疑你没有指定它们应该添加到哪个作业存储,在这种情况下,它们会转到“默认”存储(基于内存的作业存储),而不是你在这里配置的“redis”。非常感谢@AlexGrönholm!,你是对的。我将代码行从
jobstores={'redis':RedisJobStore(jobs\u key='dispatched\u trips\u jobs',run\u times\u key='dispatched\u trips\u running',host='localhost',port=6379)
更改为
jobstores={'default':RedisJobStore(jobs_key='dispatched_trips_jobs',run_times_key='dispatched_trips_running',host='localhost',port=6379)}
现在可以工作了。我看不到任何添加作业的代码。这段代码似乎不能代表您的实际应用程序。您确定要将作业添加到redis作业库而不是默认的作业库吗?作业是从其他代码段添加的。所有作业都触发良好。这一部分没有问题。问题是作业不是默认的作业库保存到redis,以便在程序重新启动时可以再次安排作业。您真的需要种子设定作业的添加方式吗?是的,因为我怀疑您没有指定应将作业添加到哪个作业存储,在这种情况下,作业将转到“默认”存储(基于内存的作业存储)而不是“redis”您已经在这里配置了。非常感谢@AlexGrönholm!,您是对的。我将代码行从
jobstores={'redis':RedisJobStore(作业调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度调度(jobs_key='dispatched_trips_jobs',run_times_key='dispatched_trips_running',host='localhost',port=6379)}
及其工作状态