No description
Find a file
2023-10-06 08:19:39 +07:00
.vscode Добавление поддержки телеграм 2022-08-17 04:36:05 +07:00
configs Создан контроллер для CRUD операций с дашбордами 2023-09-20 10:12:45 +07:00
frontend Добавлена основа для представления дашбордов на фронтенде 2023-10-06 08:19:39 +07:00
libs/event-emitter Добавлен ендпоинт получения списка публичных дашбордов 2023-10-03 08:07:16 +07:00
src Рефакторинг - разделены провайдеры данных от виджетов с представлениями 2023-10-02 19:15:05 +07:00
test Добавлен динамический модуль data-loader 2022-06-18 17:55:26 +07:00
views Добавлен вывод приоритета и версии в карточке на доске 2023-04-24 18:34:29 +07:00
.editorconfig Library controller created 2022-05-01 20:20:34 +07:00
.eslintrc.js init 2022-04-07 10:01:56 +07:00
.gitignore Добавлен парсер календарных событий 2023-08-23 02:02:52 +07:00
.prettierrc Method "saveIssue" created 2022-05-17 14:08:13 +07:00
nest-cli.json Убраны лишние параметры из nest-cli 2023-03-10 18:15:41 +07:00
package-lock.json Добавлен парсер календарных событий 2023-08-23 02:02:52 +07:00
package.json Добавлен парсер календарных событий 2023-08-23 02:02:52 +07:00
README-NestJS.md Обновлён README 2022-06-17 10:42:16 +07:00
README.md Обновлён README 2022-06-17 10:42:16 +07:00
tsconfig.build.json Добавлен React для развития фронтенд части 2023-03-10 18:29:29 +07:00
tsconfig.json Вывод комментариев в отчёте дейли со ссылками на задачи в redmine 2022-12-15 19:18:31 +07:00

Eltex Redmine Framework

Проект для автоматизации работы с Redmine

Проблема

Для реализации групп задач нужно регулярное обращение к Redmine API:

  1. Групповая загрузка данных по задачам
  2. Обработка изменений в задачах в режиме реального времени

Оба сценария могут приводить к перегрузке основного Redmine и временной недоступности его функций для всей компании.

Решить проблему можно с помощью кеширования данных, обёрткой над api к кешу.

Решения

  • libs/event-emitter (redmine-issue-event-emitter) -- подписывается на обновления задач (issue) через email или rss, при получении новых писем выполняется обращение к основному redmine api, полученные данные становятся доступны внутри фреймворка по подписке с помощью RxJS, так же возможна рассылка данных через webhook (http post) и через websocket (socket.io v2).
  • libs/redmine-issue-cache-writer -- сохраняет данные в couchdb, сравнивает прошлую запись с новой версией, рассчитывает diff журнала изменений