2016-07-22 7 views

Antwort

1

Eine Möglichkeit besteht darin, einen Cron-Job einzurichten, der volttron-ctl start agent_uuid ausführt, um ihn zu starten ... und dann noch einen, der ihn stoppt.

Die andere Möglichkeit besteht darin, den Agenten einfach laufen zu lassen und einen periodischen Eintrag hinzuzufügen, der alle 24 Stunden ausgeführt werden kann und 24 Stunden nach dem Start des Agenten ausgeführt wird.

+0

Ich denke du meinst alle 24 Stunden? –

2

Sie haben mehrere Möglichkeiten.

  1. Sie können tun, wie Craig schlägt vor, und starten Sie es mit einem cron-Job zu stoppen. Ich mag diese Idee nicht, da sie gegen den Zweck eines Agenten verstößt, der immer eingeschaltet sein sollte.
  2. Ihr Agent kann beobachten, wie Geräte veröffentlicht werden, um mit Zeitstempeln zu beginnen, die innerhalb des gewünschten Zeitblocks liegen (dies ist eine gängige Methode).
  3. Ihr Agent kann Geräte für den gewünschten Zeitblock planen (wenn Sie Steuersignale senden) und dann das Zeitplan-Ankündigungs-Thema abonnieren und auf Ihren Zeitplan-Start achten.
  4. Sie können planen, dass ein periodischer Funktionsaufruf zu Beginn des Blocks ausgelöst wird.
  5. Wie 4 können Sie Zeitplan anstelle von periodischen verwenden. Sie müssen das nächste Ereignis planen, da der Zeitplan den Rückruf nur einmal aufruft, aber er ist nützlich für Ereignisse, die sich während der Laufzeit dynamisch ändern. Der Aktuatoragent verwendet dies zum Veröffentlichen von Fahrplanzuständen.

In 2-5 bleibt der Agent die meiste Zeit ruhend und wird nur während der zugewiesenen Zeit aktiv.

+0

Ich mag Kyles Antwort besser als meine. – Craig