def run (self, manager, Q):
print "running", self, self.running
while self.running or not Q.empty( ):
item, callbacks = Q.get( )
on_ack, on_error = callbacks
print "GOT FROM Q", item
results = None
# print "ALL SCHEDULED", manager.master.scheduler.schedules
trigger = get_trigger_for(item.get('trigger', None), manager.master.scheduler)
print "FROM TRIGGER", trigger
# http://stackoverflow.com/questions/5943249/python-argparse-and-controlling-overriding-the-exit-status-code
fuzz = dbus.Dictionary(item, signature="sv")
# fuzz.update(**item)
manager.Phase('get', fuzz);
update_phase(trigger, 'Running')
try:
app = DoTool.Make(item)
manager.Phase('make', fuzz);
print "GOT ITEM", item, app
results = app( )
update_phase(trigger, 'Success')
manager.Phase('success', fuzz);
on_ack(results)
# bad
time.sleep(0.150)
except (Exception, SystemExit), e:
print "EXCEPTINO!!!!"
print e
manager.Phase('error', fuzz);
update_phase(trigger, 'Error')
time.sleep(0.150)
on_error( )
if e:
traceback.print_exc(file=sys.stdout)
# traceback.print_last( )
finally:
# update_phase(trigger, 'Done')
# update_phase(trigger, 'Finish')
update_phase(trigger, 'Remove')
print "DONE", results
Q.task_done( )
评论列表
文章目录