#!/usr/bin/env python2.3
from time import time, sleep
import thread
class Scheduler:
def __init__(self):
self.tasks = []
def add_task(self, func, delay):
task = type('Task', (), {'func': func, 'delay':delay, 'last': time()})
self.tasks.append(task)
def start(self):
while True:
for task in self.tasks:
if time() > task.last:
task.func.call()
task.last = time() + task.delay
sleep(0.1)
class FuncCounter:
def __init__(self, func):
self.count = 1
self.func = func
def call(self):
self.func( self.count )
self.count += 1
if __name__ == '__main__':
def foo_func(num):
print "foo(%d)" % num
def bar_func(num):
print "bar(%d)" % num
scheduler = Scheduler()
scheduler.add_task(FuncCounter(foo_func), 1.0)
scheduler.add_task(FuncCounter(bar_func), 5.0)
scheduler.start()
syntax highlighted by Code2HTML, v. 0.9.1