通过另一个代理启动或停止代理

Starting or stopping an agent through another agent

我目前有一个 volttron 代理,它以 csv 的形式定期从 Web 下载一些数据。我想使用 DataPublisher 示例获取该 csv 数据并将其推送到 pubsub。但是,从代码来看,DataPublisher 似乎被设计为 运行 一旦代理启动就自动执行一次。

所以我的问题变成了,有没有办法从原始代理(它本身有某种计时器或循环)启动数据发布器?然后我还需要在之后停止它。

如果我不能这样做,我的替代方案似乎是修改 datapublisher 以按计划工作,或者更改我的其他代理以将数据从 csvs 发布到 pubsub。

如有任何帮助,我们将不胜感激。

我这样做的方法是在接受要发布的文件名的数据发布者上公开一个 RPC 方法。当调用它时,它会将文件名更改为 publish 并 "start" 发布数据。数据发布者代理将始终 运行,因此不会真正重新启动发布者。

另一个代理(下载数据的那个?)然后只需要 "kick off" 通过 rpc 调用发布。

这听起来像是一个非常好的功能,如果您认为合适,可以将其提交回 VOLTTRON 存储库。