【发布时间】:2021-10-10 01:02:21
【问题描述】:
我正在使用Python Advanced Scheduler 库,我希望即时更改时间间隔,但这似乎不适用于我的实现。我正在做的是根据当前的model_retrain_freq Manager 成员值设置时间间隔,然后使用公共设置器在以后更改该时间间隔。以后的时间永远不会被拾起。建议?请参考以下内容:
运行.py
from apscheduler.schedulers.background import BackgroundScheduler
import atexit
from app.main.manager import Manager
manager = Manager()
sched = BackgroundScheduler(daemon=True)
sched.add_job(
manager.model_expiry_callback,
"interval",
seconds=manager.model_retrain_freq,
)
sched.start()
atexit.register(lambda: sched.shutdown(wait=False))
# testing
import time
time.sleep(10)
manager.model_retrain_freq = 1
time.sleep(9000)
manager.py
class Manager:
def __init__(self):
self._model_retrain_freq = 5
@property
def model_retrain_freq(self):
"""Get model retrain frequency"""
return self._model_retrain_freq
@model_retrain_freq.setter
def model_retrain_freq(self, value):
"""Set model retrain frequency"""
self._model_retrain_freq = value
【问题讨论】: