Exemple #1
0
    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
Exemple #2
0
    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)
Exemple #3
0
    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"  #???