问题1:scheduler.enter
返回已安排的事件对象,因此保留一个句柄就可以cancel
了:
from stocktrace.util import settings
from stocktrace.parse.sinaparser import getMyStock
import time, os, sys, sched
class 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不在此站点范围内。