Agentes Temporais¶
Em aplicações reais é comum que o comportamento do agente seja executado de tempos em tempos e não apenas uma vez, mas como fazer isso no Pade? :(
Execução de um agente temporal¶
Este é um exemplo de um agente que executa indefinidamente um comportamento a cada 1,0 segundos. O código fonte deste agente de comportamento temporal pode ser encontrado no diretório de exemplos no repositório do PADE no GitHub, no arquivo agent_example_2.py.
#!coding=utf-8
# Hello world temporal in Pade!
from pade.misc.utility import display_message, start_loop
from pade.core.agent import Agent
from pade.acl.aid import AID
from pade.behaviours.protocols import TimedBehaviour
from sys import argv
class ComportTemporal(TimedBehaviour):
def __init__(self, agent, time):
super(ComportTemporal, self).__init__(agent, time)
def on_time(self):
super(ComportTemporal, self).on_time()
display_message(self.agent.aid.localname, 'Hello World!')
class AgenteHelloWorld(Agent):
def __init__(self, aid):
super(AgenteHelloWorld, self).__init__(aid=aid, debug=False)
comp_temp = ComportTemporal(self, 1.0)
self.behaviours.append(comp_temp)
if __name__ == '__main__':
agents_per_process = 2
c = 0
agents = list()
for i in range(agents_per_process):
port = int(argv[1]) + c
agent_name = 'agent_hello_{}@localhost:{}'.format(port, port)
agente_hello = AgenteHelloWorld(AID(name=agent_name))
agents.append(agente_hello)
c += 1000
start_loop(agents)