Планувальник
Виклик
Під кожну задачу, яка повинна виконуватись циклічно з певною періодичністю створено свій планувальник. Він викликається за певним часом чи через певний період часу у якості демона та виконую покладені на нього завдання.
Налаштування
У планувальнику можна налаштувати час його виклику, або період, а також вимкнути ті планувальники, які не потрібні. Всі налаштування вказуються у файлі 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 та 5updateCerts
- оновлення сертифікатів ЕЦП (стандартно спрацьовує кожен день об 8:00). Сертифікати оновлюються за посиланням https://ca.diia.gov.ua/download/Soft/CACertificates.p7beuSignLogWorker
- логування операцій з ЕЦП (стандартно спрацьовує кожен день об 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 хвилин |