我有一个简单的任务,我想使用某种调度程序。 这是问题的解决。
1。)两台或两台以上的机器也在等待工作 2.)需要执行的作业列表。
启动调度程序。 检查机器1是否没有作业,将列表中的第一个项目发送给它。 检查机器2是否没有作业,将列表中的下一个项目发送给它。
如果机器2在机器1之前完成,则通知回调度程序,调度程序然后将列表中的第三项发送到机器2。
重复此方案,直到列表为空。
这是我提出的代码,这是有效的,但我如何在函数之间委派?
import logging
import threading
import time
logging.basicConfig(level=logging.DEBUG,
format='[%(levelname)s] (%(threadName)-10s) %(message)s',
)
def worker1(job):
logging.debug('Starting: %s' % job)
time.sleep(7)
logging.debug('Exiting: %s' % job)
return
def worker2(job):
logging.debug('Starting: %s' % job)
time.sleep(3)
logging.debug('Exiting: %s' % job)
return
if __name__ == '__main__':
jobs = ['job1', 'job2', 'job3', 'job4', 'job5']
#t1 = threading.Thread(target=worker1, args=(job, ))
for job in jobs:
try:
t1 = threading.Thread(target=worker1, args=(job, ))
t1.start()
t1.join()
#Thread(target=myfunction, args=(job,)).start()
except Exception, errtxt:
print errtxt