<p>listener的返回值在任何地方都没有使用(请参见<a href="https://github.com/agronholm/apscheduler/blob/8a174843acb499d7f327cc49efa4e47bdddeb8da/apscheduler/schedulers/base.py#L818" rel="nofollow noreferrer">code</a>),因此返回任何值都是没有用的。如果需要根据上一个作业的值(在侦听器中通过事件对象获取)调度另一个作业,则必须在该侦听器中正确地执行该操作。在</p>
<p><strong>编辑:</strong>为了说明如何进行编辑(并证明这是可能的),请参见以下示例代码:</p>
<pre><code>from datetime import datetime
import time
from apscheduler.events import EVENT_JOB_ERROR, EVENT_JOB_EXECUTED
from apscheduler.schedulers.background import BackgroundScheduler
def tick():
print('Tick! The time is: %s' % datetime.now())
def tack():
print('Tack! The time is: %s' % datetime.now())
def listener(event):
if not event.exception:
job = scheduler.get_job(event.job_id)
if job.name == 'tick':
scheduler.add_job(tack)
if __name__ == '__main__':
scheduler = BackgroundScheduler()
scheduler.add_listener(listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR)
scheduler.add_job(tick, 'interval', seconds=5)
scheduler.start()
try:
while True:
time.sleep(1)
except (KeyboardInterrupt, SystemExit):
scheduler.shutdown()
</code></pre>
<p>输出:</p>
^{pr2}$