![](/img/trans.png)
[英]APScheduler callback function - how can I call some funtion/module in python when a job is completed?
[英]How to call function from class in apscheduler job?
我有一個帶有觸發器的class
,我想在工作到達適當的時間時更新這些觸發器。
我的 class:
class SetTrigger(object):
def __init__(self):
self.set_work = False
self.set_reload = False
self.set_refresh = False
def UpdateSetRefresh(self):
self.set_refresh = True
return self.set_refresh
def UpdateSetWork(self):
self.set_work = True
return self.set_work
def UpdateSetReload(self):
self.set_reload = True
return self.set_reload
如果我將變量設置為從 function 獲取值,如下所示,我會收到一個錯誤。
trigger = SetTrigger()
set_refresh = trigger.UpdateSetRefresh()
錯誤:
func must be a callable or a textual reference to one
我已經嘗試調用trigger.UpdateSetRefresh
但變量set_refresh
不會更改為True
。 如果我調用trigger.UpdateSetRefresh()
它會給我上面相同的錯誤。
如何在 APScheduler 作業中從 class SetTrigger
調用 function UpdateSetRefresh
,如下所示?
scheduler.add_job(trigger.UpdateSetRefresh(), 'interval', seconds=20, id='1', name='refresh_hereoes_positions', misfire_grace_time=180)
或者
scheduler.add_job(set_refresh, 'interval', seconds=20, id='1', name='refresh_hereoes_positions', misfire_grace_time=180)
您必須將 function 傳遞給add_job
但您傳遞的是trigger.UpdateSetRefresh
的返回值而不是它。
所以正確的陳述應該是:
scheduler.add_job(trigger.UpdateSetRefresh, 'interval', seconds=2, id='1', name='refresh_hereoes_positions')
代替
scheduler.add_job(trigger.UpdateSetRefresh(), 'interval', seconds=2, id='1', name='refresh_hereoes_positions')
當您在 function 名稱 python 的末尾添加括號時,將執行它並將返回值傳遞給add_job
function。
有關將 function 作為參數傳遞的更多信息,請查看此鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.