Skip to main content

Планувальник

Виклик

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

Налаштування

У планувальнику можна налаштувати час його виклику, або період, а також вимкнути ті планувальники, які не потрібні. Всі налаштування вказуються у файлі configServer.json

Приклад параметрів конфіг файлу, які відповідають за налаштування планувальників:

{
"cronTime": {
"signLogWorker": "23:55" //час виклику cron з назвою signLogWorker,
"rotate": 86400 //період виклику cron з назвою rotate мс
},
"cronDisable": ["euSignLogWorker", "systemMetricsDaily"] // список назв планувальників, які будуть вимкненні
}

Якщо у конфіг файлі не вказано параметру, який описано вище - то планувальник спрацьовує за стандартним заданим часом чи періодом.

Виклик через запит до API

Є можливість виконати задачу планувальника через API. ля цього потрібно перейти за покликанням <доменне ім'я порталу>/api-user/cron?cronName=<назва планувальника відповідно до списку> (доступно тільки для адміністратора). У результаті запиту виконується той самий скрипт, який викликається у планувальнику відповідно до вказаної назви планувальника.

Перелік планувальників

  • systemMetricsFifthly - збір метрік кожні 5 хвилин. Записує метріки у вигляді лог файлу у теку <шлях до ноди>/log/metric
  • systemMetricsDaily - використовується для збирання щоденного звіту системи Logger'a. Записує метріки у вигляді лог файлу <шлях до ноди>/log/metric.log
  • clearRedis - очистка Redis (стандартно спрацьовує кожен день об 21:00). Використовується для очищення ключів Redis з баз 0, 1, 2 та 5
  • updateCerts - оновлення сертифікатів ЕЦП (стандартно спрацьовує кожен день об 8:00). Сертифікати оновлюються за посиланням https://ca.diia.gov.ua/download/Soft/CACertificates.p7b
  • euSignLogWorker - логування операцій з ЕЦП (стандартно спрацьовує кожен день об 23:20). Створює лог з операціями ЕЦП з таблички БД admin.ecp_sign_log та автоматично накладає на нього підпис системи та розміщує файл логу та підпису у теці <шлях до ноди>/log/signed
  • signLogWorker - підпис логів ЕЦП (спрацьовує кожен день об 23:30). Автоматично підписує файли логів печаткою системи та розміщкє підпис та копію файлу у теці <шлях до ноди>/log/signed
  • gis.layer.clear.sched - очищення vtile (спрацьовує кожну хвилину)
  • status_uservices_api - надсилання статусів розгляду всіх інших заявок на Дію за посиланням https://cabinet-api-bpmn-diia-stg.kitsoft.kiev.ua/external_services/status/json або за вказаним у пункті нанаштувань (виконується кожні 15 хвилин)
  • send_status_appl_api - відправляення статусів розгляду заявок на отримання БП/МУО на Дію за посиланням https://cabinet-api-bpmn-diia-stg.kitsoft.kiev.ua/external_services/status/json або за вказаним у пункті нанаштувань (виконується кожні 15 хвилин)
  • send_auto_email - автоматична розсилка повідомлень на електронну пошту про оновлення статусів з Дії (виконується кожні 2 хвилини)
  • importOvd - оновлює дані таблички integration.ovd з Єдиного реєстру з оцінки впливу на довкілля за посиланням http://eia.menr.gov.ua/api/get_cases (виконується один раз на день об 8:00)
  • tableLogWorker - вивантаження змін за день з табличок БД, які вказані відповідно до опису (спрацьовує кожен день об 23:35)

Перелік метрік, що записуються

{
// [main]
"age": "5m", // Період формування логів
"time": "16:20", // Час

// [server]
"cpu": 4.22006, // ЦП

"ram:used": "28K", // RAM використано
"ram:usage": "64.4K", // RAM використовується

// [size]
"size:file": 45, // Загальний обсяг файлів
"size:db": 45, // Загальний обсяг БД

// [redis]
"redis:latency": 0.24, // Затримка, msec
"redis:memory": 9.20, // Пам'ять, GB
"redis:hits": "62.4M", // Кількість запитів всього
"redis:db0": "1.1K", // Кількість записів db 0
"redis:db1": "8.2K", // Кількість записів db 1
"redis:db2": "2.9K", // Кількість записів db 2
"redis:db10": 10, // Кількість записів db 10
"redis:uptime": 77, // Час з моменту запуску

// [pg]
"pg:uptime": 27, // Час з моменту запуску PostgreSQL

// [node]
"node:uptime": "32.7K", // Час з моменту запуску NODE
"node:connection": 222, // Кількість активних запитів до NODE.js
"node:memory": "232.2M", // Обсяг пам'яті під процес node


// [query] log table id uid
"query": 27, // Кількість поточних запитів master
"query:olap": 27, // Кількість поточних запитів olap/slave
"query:long": 0, // кількість довгих запитів
"query:time": 27, // Час виконання запиту
"query:insert": 33, // Запити внесення
"query:update": 33, // Запити змін
"query:del": 23, // Запити вилучення

// [API]
"api": 128, // Кількість викликів API
"api:public": 212, // Кількість викликів API Public

// [Helper]
"helper": 22, // Кількість викликів helper
"helper:contentList": 11, // Кількість викликів helper "ContentList"

// [Error]
"error": 333, // Кількість помилок
"error:501": 200, // Кількість помилок code=501

// [Service]
"service:map:render": 224, // Кількість згенерованих tile

// [Cron]
"cron": 333, // Кількість викликів планувальника

// [user]
"user:login": 2, // Кількість авторизацій
"user:login.error": 3, // Кількість невдалих спроб авторизації
"user:online": 34, // Кількість користувачів онлайн

// [select]
"suggest": 44, // Кількість викликів suggest
"select": 33, // Кількість викликів select
"suggest:time": 212, // Час виконання suggest
"select:time": 23 // Час виконання select
}

Опис способів задання інтервалу спрацьовування

ЗначенняОпис
"02:54"кожень день об 02:54
"*1:43"двічі на день (кількість годин закінчується на 1, а кількість хвилин дорівнює 43)
"**:54"кожну годину об 54 хвилині
"**:*3"кожні 10 хвилин (кількість хвилин закінчується на 3)
60кожну хвилину
10 * 60кожні 10 хвилин