首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JADE:暂停行为并从最后一点恢复执行

JADE:暂停行为并从最后一点恢复执行
EN

Stack Overflow用户
提问于 2018-04-18 17:33:31
回答 1查看 347关注 0票数 0

我在JADE Java Agent Dev的平台上工作,我面临着一个在等待特定消息的同时接收消息的问题。

我有一个有两个行为的代理,第一个行为是从其他代理接收消息。第二,实现智能体逻辑。如下所示

代码语言:javascript
复制
    action1 ...
    send message to an agent
    wait for reply // this is blocking
    action2 ...

等待应答部分等待来自目标代理的结果,该结果满足于没有其他代理干扰向该代理发送消息。

问题是,当此代理由于操作方法策略而等待回复(将其ReceiverBehavior置于保留状态)时。如果它收到了回复,那么一切都很好。但是,如果同时向该代理发送了消息,则接收到的数据是错误的,并且action2部分不再有效。事实上,这种对其他代理消息的干扰应该由ReceiverBehavior接收。

我正在考虑在发送消息后将行为搁置。因此,终止“操作”方法,让ReceiverBehavior接收新消息,当相关消息被接收到时,它将通知该行为,并让它恢复。但是,它应该从action2恢复执行。

我希望我已经足够清楚地解释了这个问题。非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2018-04-19 22:14:14

如果我没看错的话,你应该使用MessageTemplate来接收合适的响应。

代码语言:javascript
复制
MessageTemplate mt = ...
ACLMessage aclMessage = myAgent.receive(mt);
if(aclMessage == null){
   block(TIMEOUT);
} else {
  ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49896169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档