Можно ли запланировать запуск агента в VOLTTRON в определенное время?

Можно ли запустить и затем остановить агента по расписанию, скажем, запустить в 12:00, а затем останавливаться в 13:00 каждый день. Благодарю.

2 ответа

У вас есть несколько вариантов.

  1. Вы можете делать то, что предлагает Крэйг, и начинать и останавливать его с помощью cron Мне не нравится эта идея, поскольку она идет вразрез с целью агента, который должен быть всегда включен.
  2. Ваш агент может следить за публикациями устройства, чтобы они начинали появляться с отметками времени, которые попадают в нужный интервал времени (это распространенный метод).
  3. Ваш агент может запланировать устройства на желаемый отрезок времени (если вы собираетесь отправлять управляющие сигналы), а затем подписаться на тему объявления о расписании и следить за началом своего расписания.
  4. Вы можете запланировать периодический вызов функции, который будет запускаться в начале блока.
  5. Как 4 вы можете использовать график вместо периодического. Вы должны запланировать следующее событие, так как расписание будет вызывать обратный вызов только один раз, но это полезно для событий, которые динамически изменяются во время выполнения. Агент привода использует это для публикации состояний расписания.

В 2-5 агент будет оставаться бездействующим в течение большей части времени и станет активным только в течение отведенного времени.

Одним из способов является создание задания cron, которое запускает volttron-ctl start agent_uuid, чтобы запустить его... затем другое, которое останавливает его.

Другой способ может заключаться в том, чтобы просто оставить агент запущенным и добавить периодический отчет, который может запускаться каждые 24 часа, что будет выполняться через 24 часа после запуска агента.

Другие вопросы по тегам