feat: добавил инвалидацию кэшей плагинов
Create and publish a Docker image / Publish image (push) Successful in 1m53s

This commit is contained in:
serega404 committed 2026-09-15 22:36:33 +03:00
1 parent 01bab77900
commit c590a8a6c7
5 files changed
+51 -4

No files matched your search

+6 -1
View File
@@ -89,6 +89,7 @@
- загружает большой список сотрудников;
- группирует записи по ФИО;
- сохраняет результат на диск;
- после успешного обновления предлагает всем плагинам инвалидировать свои кэши;
- повторяет попытки при временных сбоях.
Если сервис ещё не инициализирован, `GET /api/schedule/searchemployee` возвращает `503`.
@@ -131,7 +132,11 @@ Quartz job [UpdateJwtJob](/home/serega404/Рабочий стол/SfeduSchedule/
На старте хост ищет все `*.plugin.dll` внутри `data/Plugins` и загружает найденные сборки как плагины. Плагин должен реализовывать интерфейс [IPlugin](/home/serega404/Рабочий стол/SfeduSchedule/ModeusSchedule.Abstractions/IPlugin.cs), чтобы:
- зарегистрировать свои сервисы в DI через `ConfigureServices`;
- добавить minimal API маршруты через `MapEndpoints`.
- добавить minimal API маршруты через `MapEndpoints`;
- опционально обновить или очистить свои кэши через `InvalidateCacheAsync`.
`InvalidateCacheAsync` имеет default-реализацию, поэтому плагины, собранные до добавления этого метода,
продолжают загружаться. Ошибка инвалидации одного плагина логируется и не мешает вызвать остальные.
MVC-контроллеры из плагинов тоже подключаются автоматически через `ApplicationPart`.