def agentbehavior1(cola): """ Un comportamiento del agente :return: """ global mss_cnt logger.info('Nos registramos en el servicio de registro') register_message(DSO.AgenteLogistico, AgenteLogistico, DirectoryAgent, mss_cnt) fin = False while not fin: while cola.empty(): pass gmess = cola.get() if gmess == 0: fin = True else: agenteVendedorExterno = directory_search_agent( DSO.AgenteVendedorExterno, AgenteLogistico, DirectoryAgent, mss_cnt)[0] content = gmess.value(predicate=RDF.type, object=AM2.Avisar_vendedor_externo_envio) grm = build_message(gmess, perf=ACL.request, sender=AgenteLogistico.uri, receiver=agenteVendedorExterno.uri, content=content, msgcnt=mss_cnt) send_message(grm, agenteVendedorExterno.address) logger.info( 'Se ha notificado al vendedor externo para que se encargue del envio' )
def agentbehavior1(cola): """ Un comportamiento del agente :return: """ global mss_cnt logger.info('Nos registramos en el servicio de registro') register_message(DSO.AgenteAlmacen,AgenteAlmacen,DirectoryAgent,mss_cnt) fin = False
def agentbehavior1(): """ Un comportamiento del agente :return: """ global mss_cnt # Registramos el agente cliente logger.info('Nos registramos en el servicio de registro') gr = register_message(DSO.AgenteCliente, AgenteCliente, DirectoryAgent, mss_cnt)
def agentbehavior1(cola): """ Un comportamiento del agente :return: """ global mss_cnt # Registramos el agente gr = register_message(DSO.AgenteDevoluciones, AgenteDevoluciones, DirectoryAgent, mss_cnt) # Escuchando la cola hasta que llegue un 0 fin = False
def agentbehavior1(cola): """ Un comportamiento del agente :return: """ global mss_cnt # Registramos el agente gr = register_message(DSO.AgenteRecomendador, AgenteRecomendador, DirectoryAgent, mss_cnt) # Escuchando la cola hasta que llegue un 0 fin = False schedule.every(25).seconds.do(recomendarProductosClientes) while not fin: while cola.empty(): schedule.run_pending() pass v = cola.get() if v == 0: fin = True else: agenteCliente = directory_search_agent(DSO.AgenteCliente, AgenteRecomendador, DirectoryAgent, mss_cnt)[0] content = v.value(predicate=RDF.type, object=AM2.Peticion_valoracion) grm = build_message(v, perf=ACL.request, sender=AgenteRecomendador.uri, receiver=agenteCliente.uri, content=content, msgcnt=mss_cnt) gRespuesta = send_message(grm, agenteCliente.address) logger.info( 'Se ha enviado una peticion de valoraciones al cliente') gValoraciones = Graph() for s in gRespuesta.subjects(RDF.type, AM2.Producto): print("------------------>%s" % (s)) gValoraciones += gRespuesta.triples((s, None, None)) addValoracionToBD(gValoraciones) logger.info('Se ha añadido la valoracion a la base de datos')
def agentbehavior1(cola): """ Un comportamiento del agente :return: """ global mss_cnt logger.info('Nos registramos en el servicio de registro') register_message(DSO.AgenteVentaProductos, AgenteVentaProductos, DirectoryAgent, mss_cnt) fin = False while not fin: while cola.empty(): pass v = cola.get() if v == 0: fin = True else: sj_avisar_recomendador = v.value(predicate=RDF.type, object=AM2.Nueva_compra) sj_solicitud_envio = v.value(predicate=RDF.type, object=AM2.Solicitud_envio) print("-------->sj_avisar_recomendador-->%s" % (sj_avisar_recomendador)) print("-------->sj_solicitud_envio-->%s" % (sj_solicitud_envio)) if sj_solicitud_envio != None: #enviamos mensaje agenteLogistico = directory_search_agent( DSO.AgenteLogistico, AgenteVentaProductos, DirectoryAgent, mss_cnt)[0] grm = build_message(v, perf=ACL.request, sender=AgenteVentaProductos.uri, receiver=agenteLogistico.uri, content=sj_solicitud_envio, msgcnt=mss_cnt) logger.info( 'Se ha enviado al centro logístico la solicitud de envio') gr = send_message(grm, agenteLogistico.address) logger.info( 'Se ha recibido la respuesta del centro logístico, notificando al cliente' ) agenteCliente = directory_search_agent(DSO.AgenteCliente, AgenteVentaProductos, DirectoryAgent, mss_cnt)[0] msgdic = get_message_properties(gr) content = msgdic['content'] confirmacion = gr.value(subject=content, predicate=RDF.type) if confirmacion == AM2.Confirmacion_envio: logger.info("Confirmacion del envio") elif confirmacion == AM2.Confirmacion_envio_externo: logger.info("Confirmacion del envio externo") elif confirmacion == AM2.Confirmacion_envio_externo_interno: logger.info("Confirmacion del envio externo e interno") gmess = Graph() sj_contenido = AM2[AgenteVentaProductos.name + '-Factura_Compra-' + str(mss_cnt)] gmess.add((sj_contenido, RDF.type, AM2.Emitir_factura)) grm = build_message(gmess, perf=ACL.request, sender=AgenteVentaProductos.uri, receiver=agenteCliente.uri, content=sj_contenido, msgcnt=mss_cnt) send_message(grm, agenteCliente.address) logger.info( 'Se han enviado los detalles de la entrega al cliente') elif sj_avisar_recomendador != None: #avisar al recomendador agenteRecomendador = directory_search_agent( DSO.AgenteRecomendador, AgenteVentaProductos, DirectoryAgent, mss_cnt)[0] grm = build_message(v, perf=ACL.request, sender=AgenteVentaProductos.uri, receiver=agenteRecomendador.uri, content=sj_avisar_recomendador, msgcnt=mss_cnt) send_message(grm, agenteRecomendador.address) logger.info( 'El AgenteRecomendador ha sido notificado de la compra')