Skip to main content

Завдання Fledge

Завдання є частиною платформи Fledge IoT. Вони схожі на сервіси, але з чітким розмежуванням:

  • services запускаються в певний момент (зазвичай під час запуску), і вони, швидше за все, продовжуватимуть працювати, доки Fledge не зупиниться.
  • tasks запускаються, коли потрібно, вони виконують завдання, а потім завершуються.

Простіше кажучи, сервіс призначений для того, щоб завжди слухати запити та реагувати на них, тоді як завдання запускається подією, а потім, коли робота припиняється, завдання завершуються.

Тим не менш, завдання та сервіси мають однакові функції:

  • Вони обидва запускаються планувальником Fledge. Ймовірно, сервіси запускаються під час запуску, тоді як завдання можуть запускатися в заданий час або інтервал.
  • Вони обидва використовують внутрішній API для зв’язку з іншими сервісами.
  • Вони обидва використовують ту саму архітектуру, що підключається, щоб відокремити загальну логіку, зазвичай пов’язану з внутрішніми функціями Fledge, від більш загальної логіки, зазвичай ближчої до типу операцій, які потрібно виконувати.

У цьому розділі ми представляємо набір завдань, які зазвичай доступні у Fledge.

Очищення (Purge)

Завдання Purge запускається планувальником для очищення старих даних, які все ще зберігаються (буферизовані) у Fledge. Логіка, застосована до завдання, відносно проста:

  • Завдання викликається ексклюзивно (тобто в будь-який момент часу не може бути більше одного завдання Очищення) планувальником Fledge щогодини (за замовчуванням).
  • Дані, старші за певну дату/час, видаляються.
  • Додатково дані видаляються, якщо загальний розмір збережених об'єктів перевищує 1 Гбайт (за замовчуванням)
  • За бажанням дані не видаляються, якщо вони ще не були витягнуті та використані жодним завданням чи сервісом North.
  • Усі операції очищення зберігаються в журналі аудиту.

Розклад Очищення

Purge — це одне із завдань, яке запускає планувальник Fledge. Ви можете отримати інформацію про планування, викликавши метод GET виклику schedule. Ім’я та ім’я процесу завдання є purge:

$ curl -sX GET http://localhost:8081/fledge/schedule
...
{ "id" : "cea17db8-6ccc-11e7-907b-a6006ad3dba0",
"name" : "purge",
"time" : 0,
"enabled" : true,
"repeat" : 3600,
"type" : "INTERVAL",
"exclusive" : true,
"processName" : "purge",
"day" : null },
...

Як ви можете бачити з вихідних даних JSON, завдання планується виконувати щогодини (3600 секунд). Щоб змінити інтервал між завданнями Purge, ви можете викликати метод PUT виклику schedule, передавши пов’язаний id. Наприклад, щоб змінити завдання, яке буде виконуватися будь-які 5 хвилин (тобто 300 секунд), вам слід викликати:

$ curl -sX PUT http://localhost:8081/fledge/schedule/cea17db8-6ccc-11e7-907b-a6006ad3dba0 -d '{"repeat": 300}'
{ "schedule": { "id": "cea17db8-6ccc-11e7-907b-a6006ad3dba0",
"name" : "purge",
"time" : 0,
"enabled" : true,
"repeat" : 300,
"type" : "INTERVAL",
"exclusive" : true,
"processName" : "purge",
"day" : null }
}

Конфігурація Очищення

Конфігурація завдання Purge зберігається в структурах метаданих Fledge, і її можна отримати за допомогою методу GET виклику category/PURGE_READ. Це команда, яка використовується для отримання конфігурації у форматі JSON:

$ curl -sX GET http://localhost:8081/fledge/category/PURGE_READ
{ "retainUnsent" : { "type": "boolean",
"default": "False",
"description": "Retain data that has not been sent to any historian yet.",
"value": "False" },
"age" : { "type": "integer",
"default": "72",
"description": "Age of data to be retained, all data that is older than this value will be removed,unless retained. (in Hours)",
"value": "72" },
"size" : { "type": "integer",
"default": "1000000",
"description": "Maximum size of data to be retained, the oldest data will be removed to keep below this size, unless retained. (in Kbytes)",
"value": "1000000" } }

Зміни можна застосувати за допомогою методу PUT для кожного виклику параметра. Наприклад, щоб змінити політику зберігання даних, які ще не були надіслані історикам, ви можете використати цей виклик:

$ curl -sX PUT http://locahost:8081/fledge/category/PURGE_READ/retainUnsent -d '{"value": "True"}'
{ "type": "boolean",
"default": "False",
"description": "Retain data that has not been sent to any historian yet.",
"value": "True" }

У наступній таблиці наведено список параметрів, які можна змінити в завданні Purge:

ПредметТипЗа замовчуваннямОпис
retainUnsentbooleanFalseЗберігати дані, які ще не були надіслані на «North». Якщо значення True, дані, які ще не були отримані жодним сервісом чи завданням North, не видалятимуться. Якщо значення False, дані видаляються без перевірки, чи надіслано їх до північного пункту призначення чи ні.
ageinteger72Вік даних, які потрібно зберегти, у годинах. Дані, старші за це значення, буде видалено.
sizeinteger1000000Розмір даних у Кбайтах, які зберігатимуться у Fledge. Старіші дані буде видалено, щоб дані, що зберігаються у Fledge, були меншими за цей розмір.