库版本: APScheduler-3.5.3 SQLAlchemy-1.3.4 cx_Oracle-7.1.3 python-2.7.14
"OperationalError('(cx_Oracle.OperationalError)启动(使用job_store)并成功地工作(您可以添加作业、作业存储可以正常工作,等等),但是,当超过24小时不活动(没有添加或修改新作业)时,添加新作业时会发生以下错误-- ORA-03114: not to BackgroundScheduler‘,“
代码确定:
job_store = SQLAlchemyJobStore(url=URL_JOBSTORE, tablename = TABLE_JOBSTORE)
_job_scheduler = BackgroundScheduler()
_job_scheduler.add_jobstore(job_store)
_job_scheduler.start()
_job_scheduler.add_job(...) #OK代码错误:
job_store = SQLAlchemyJobStore(url=URL_JOBSTORE, tablename = TABLE_JOBSTORE)
_job_scheduler = BackgroundScheduler()
_job_scheduler.add_jobstore(job_store)
_job_scheduler.start()
#LONG TIME OPERATIONS 24 hours past
_job_scheduler.add_job(...) # drops OperationErrror exception错误已满:
OperationalError:(cx_Oracle.OperationalError) ORA-03114:未连接到甲骨文\nSQL: INSERT INTO "jobrestore_PRE_CENTRE2_0" (id, next_run_time, job_state) VALUES (:id, :next_run_time, :job_state)\n‘
我想Jobstore已经失去联系了。因为如果您再次创建调度程序,它将正常工作。是否有任何方法将Jobstore重新连接到数据库?
谢谢
发布于 2020-02-04 14:52:25
我建议您尝试将engine_options={‘job _ passing’:True}传递到作业存储区。这将防止由于数据库服务器关闭空闲连接而导致的任何错误。
job_store = SQLAlchemyJobStore(url=URL_JOBSTORE,tablename = TABLE_JOBSTORE,engine_options={‘pool_ping’:True})
https://stackoverflow.com/questions/60057604
复制相似问题