가장 쉬운 방법은 콜백 함수를 예약 된 작업의 끝에 추가하는 것입니다. 또한 태스크의 끝에 self.function_callback()을 포함하도록 스케줄러 클래스 위에 빌드 할 수 있습니다.
빠른 예 :
def tick():
print('Tick! The time is: %s' % datetime.now())
time.sleep(10)
function_cb()
def function_cb():
print "CallBack Function"
#Do Something
if __name__ == '__main__':
scheduler = AsyncIOScheduler()
scheduler.add_job(tick, 'interval', seconds=2)
scheduler.start()
print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
# Execution will block here until Ctrl+C (Ctrl+Break on Windows) is pressed.
try:
asyncio.get_event_loop().run_forever()
except (KeyboardInterrupt, SystemExit):
pass
scheduler.shutdown(wait=False)
는 그래, 난 동의합니다. 나는 거터 채널에서 저자에게 물어 봤고 이것이 APScheduler로는 불가능하다는 것을 알았습니다. 당신이 말하는 것은 합법적이지만, 유스 케이스는 다르다. 왜냐하면 실행 프로세스가 시간이 걸리기 때문에 스케줄러가 작업을 시작할 때 그것을 완료로 표시 할 수는 없다. 내가 알아낼 수있는 유일한 사실은 완전한 상태를 표시하기 위해 독립적 인 다른 직업을 추가하는 것이지만, (1) 아무 것도 보증 할 수 없다는 것, (2) 못생긴 것 : 한 가지로 두 가지 일을하는 것입니다. 그래서 마침내 나는 이것을 포기하고 그것을 표시하지 마십시오. 감사합니다. 승인 된 것으로 표시됩니다. – FaithReaper