2016-07-26 44 views
0

Ich habe derzeit einen Volttron-Agent, der regelmäßig einige Daten aus dem Internet in Form eines CSV herunterlädt. Ich möchte das DataPublisher-Beispiel verwenden, um diese CSV-Daten zu übernehmen und an pubsub zu senden. Aus dem Blick auf den Code scheint der DataPublisher jedoch so konzipiert zu sein, dass er einmal automatisch ausgeführt wird, sobald der Agent gestartet wird.Starten oder Stoppen eines Agenten durch einen anderen Agenten

So meine Frage wird, gibt es eine Möglichkeit, den Datapublisher von der ursprünglichen Agent (die selbst irgendeine Art von Timer oder Schleife haben würde) zu starten? Ich müsste dann auch danach aufhören.

Wenn ich dies nicht tun kann, scheinen meine Alternativen den Datapublisher zu modifizieren, um nach einem Zeitplan zu arbeiten, oder meinen anderen Agenten zu ändern, um die Daten von den CSVs nach pubsub zu veröffentlichen.

Jede Hilfe wäre sehr willkommen.

Antwort

0

So würde ich eine RPC-Methode auf dem Datenherausgeber bereitstellen, die entweder einen zu veröffentlichenden Dateinamen akzeptiert. Wenn dies aufgerufen wird, ändert sich der Dateiname, um die Veröffentlichung der Daten zu veröffentlichen und zu "starten". Der Data Publisher-Agent wird immer ausgeführt, damit der Publisher nicht ordnungsgemäß neu gestartet wird.

Der andere Agent (Derjenige, der die Daten heruntergeladen hat?) Müsste dann nur die Veröffentlichung durch den RPC-Aufruf "starten".

Das klingt nach einem sehr guten Feature, das man in das VOLTTRON-Repository zurückversetzen könnte, wenn man es für richtig hält.