Exemple #1
0
def doTask():
	master_host = request.args.get('from')
	taskid = request.args.get('taskid', -1)
	sleep_time = request.args.get('sleep_time', 0)
	if master_host:
		worker.do_task(Task(taskid, sleep_time), master_host)
		return 'OK' ,200
	return 'Rejected, parameters error', 203
Exemple #2
0
 def get(self):
     entry = self.tasks.find_one(
         {"$or": [{
             'status': Status.CREATED
         }, {
             'status': Status.FAILURE
         }]},
         sort=[('taskid', 1)])
     return Task(entry['taskid'], entry['sleep_time']) if entry else None
Exemple #3
0
	def notify(self, master_host=None):
		filter = (lambda task: (not master_host or task['master_host'] == master_host) 
				and task['status'] != Status.RUNNING)
		for task in self.msg_queue.find(filter):
			params = Task(task['taskid'], task['sleep_time']).__dict__.copy()
			params.update({'status': task['status'], 'worker': task['uid']})
			status, _ = Conn(task['master_host']).send_recv('/notify', params)
			if status == 200:
				# a message is removed only if it is sent successfully
				# otherwise wait for master to ping and gather this message later
				self.msg_queue.delete(task['_id'])
def read_csv(file_name):
    with open(file_name) as csv_file:
        reader = csv.reader(csv_file, delimiter=',')
        weights = []
        sizes = []
        costs = []
        line_count = 0
        for row in reader:
            if line_count == 0:
                n_items = int(row[0])
                max_weight = int(row[1])
                max_size = int(row[2])
                logging.info("No of items " + str(n_items) + " max weight: " +
                             str(max_weight) + " max size: " + str(max_size))
                line_count += 1
            else:
                weights.append(int(row[0]))
                sizes.append(int(row[1]))
                costs.append(int(row[2]))
        logging.info("Task imported from the csv file")
        return Task(n_items, max_weight, max_size, weights, sizes, costs)
Exemple #5
0
 def get_task_(self):
     status, data = Conn(self.taskpool_host).send_recv('/get')
     if status != 200 or not data:
         return None
     qs = parse_qs(data)
     return Task(qs['taskid'][0], qs['sleep_time'][0])
Exemple #6
0
 def random_init(self, num=100):
     # insert tasks with random sleep time
     for i in range(0, num):
         self.put(Task(i, randint(1, 5)))