def shake_tree_sap(self, mode=None): elem = TaskTree.get_sq_len() for i in range(1, elem + 1): # get a task to assign sq = TaskTree.get_sq_elem() # get a task to assign print 'shake_tree: NewQlen=' + str(elem) + 'Task got is ' + str(sq) wid = wm.W.assign( 'sap', sq[1]) # Get a free worker to do the task picked above if (wid): ws = wm.W.get_socket(wid) # ws.write_message('Shruthi-try') msg = ws.fill_msg_wsh(sq[1], mode='sap') print 'Sending a msg to show task ' + str( sq[1]) + 'to worker ' + wid #print 'Socket of wid is ' + str(ws.workerId) #important step for sending ready msgs: #hide the mode of the message in preference to know #what content to preview to worker. msg['preference'] = msg['mode'] msg['mode'] = "ready" send_task(msg) #todo:msg = ws.fill_msg_wsh(sq[1]) else: print 'Warning - no workers' TaskTree.add_to_sq(sq[0], sq[1]) # Put the task back in the queue break
def on_close(self): print "Closing socket for" + self.workerId #abandon current task: TID = wm.W.get_TID(self.workerId) if (TID is not False): print "aborting task: ", TID if (TaskTree[TID].status == 'sap'): TaskTree.add_to_sq(0, TID) else: TaskTree.add_to_q(0, TID) wm.W.complete(self.workerId, False) #NOTE!!! may want to add dynamically changing priority t_amt.delete_amt_hit(self.hitId) wm.W.logout(self.workerId)
def ready_callback(self, msg): if (TaskTree[msg['TID']].status == 'sap'): mode = 'sap' else: mode = msg['preference'] print "pref:", msg['ready_flag'] if (msg['ready_flag'] == "accept"): # #increase idle time # mins = (msg['time_end']-msg['time_start']).total_seconds() / float(60) # print "adding idle mins:", mins # wm.W.addIdleTime(self.workerId,mins) if (mode == 'sap'): TaskTree[msg['TID']].add_sapwid(self.workerId) else: TaskTree[msg['TID']].add_wid(self.workerId) print "ACCEPTED, mode:", mode msg['mode'] = mode send_task(msg) else: print "declined" msg['mode'] = 'idle' send_task(msg) if (mode == 'sap'): TaskTree.add_to_sq(0, msg['TID']) self.shake_tree_sap() else: TaskTree.add_to_q(0, msg['TID']) self.shake_tree() wm.W.complete(self.workerId, None) print "ready callback" #???