问题1:
scheduler.enter返回已安排的事件对象,因此保留一个句柄就可以
cancel了:
from stocktrace.util import settingsfrom stocktrace.parse.sinaparser import getMyStock import time, os, sys, schedclass Monitor(object): def __init__(self): self.schedule = sched.scheduler(time.time, time.sleep) self.interval = settings.POLLING_INTERVAL self._running = False def periodic(self, action, actionargs=()): if self._running: self.event = self.scheduler.enter(self.interval, 1, self.periodic, (action, actionargs)) action(*actionargs) def start(self): self._running = True self.periodic(getMyStock) self.schedule.run( ) def stop(self): self._running = False if self.schedule and self.event: self.schedule.cancel(self.event)
我已将您的代码移到一个类中,以使引用事件更加方便。
Q2不在此站点范围内。



