def send2msg(yml_temp_name, args, alias): conn = amqp.Connection(host="127.0.0.1:5672", userid="guest", password="******", virtual_host="/", insist=False) chan = conn.channel() # cankao http://blog.csdn.net/linvo/article/details/5750987 #插入数据任务状态 print 0 job = Jobs() id = job.Insdate(object=alias, started=datetime.now(), finished="0", template_name=yml_temp_name, args=pickle.dumps(args), status=0) print 1 msg = (yml_temp_name, args, id) print msg msg = amqp.Message(pickle.dumps(msg)) msg.properties["delivery_mode"] = 2 chan.basic_publish(msg, exchange="sorting_room", routing_key="json") chan.close() conn.close()
def reset(self): NUM_MACHINES = self.config['NUM_MACHINES'] NUM_JOBS = self.config['NUM_JOBS'] self.machines = [Machine(i) for i in range(NUM_MACHINES)] self.jobs = [Jobs(i) for i in range(NUM_JOBS)] self.NOW = 0 self.jobs_processed = np.zeros( (self.config['NUM_MACHINES'], self.config['NUM_JOBS']), dtype=np.int8) return self.returnObs()
def recv_callback(msg): #获取消息传来的值作为参数处理 yml_temp_name, args, id = pickle.loads(msg.body) pb = os.path.join(os.path.join('/root', yml_temp_name), 'main.yml') #拼合剧本路径 #print pb #print args status = ansible_book(pb, args, id) job = Jobs() for key, value in json.loads(status).items(): if value['unreachable'] != 0: #更新任务状态 job.Simple_update(finished=datetime.now(), status=1, id=id) elif value['failures'] != 0: job.Simple_update(finished=datetime.now(), status=2, id=id) else: job.Simple_update(finished=datetime.now(), status=3, id=id)