Skip to content

Digest de notifications Discord/Apprise + logs par schedule#6

Merged
Aerya merged 1 commit into
masterfrom
feature/notif-digest-and-per-schedule-logs
Jun 17, 2026
Merged

Digest de notifications Discord/Apprise + logs par schedule#6
Aerya merged 1 commit into
masterfrom
feature/notif-digest-and-per-schedule-logs

Conversation

@Aerya

@Aerya Aerya commented Jun 17, 2026

Copy link
Copy Markdown
Owner

1. Notifications en digest (Discord & Apprise)

Avant, Discord et Apprise envoyaient un message par fichier telecharge, ce qui pouvait declencher le rate limiting de Discord et noyer le salon.

Desormais :

  • Un seul digest est envoye en fin de scan, listant les fichiers reellement telecharges.
  • La liste est decoupee en lots de 20 lignes, envoyes comme messages distincts avec une courte pause (1 s) entre chacun, pour rester sous les limites de Discord.
  • Aucun message n'est envoye si le scan ne telecharge rien (donc pas de spam a vide).
  • Pushbullet et Amazon SNS sont inchanges (toujours un message par fichier).

Implementation : nouvelle interface ScheduleSummaryAction (action de fin de run recevant la liste des fichiers), portee par ScheduleConfiguration.getSummaryActions(). DiscordNotifyAction et AppriseNotifyAction la implementent. DownloadFilesWorkflowStep collecte les transferts FINISHED et declenche le digest a la fin du run.

2. Un log par schedule

Chaque schedule ecrit maintenant son propre fichier de log :

/config/logs/schedules/<nom du schedule>.log

On peut donc suivre l'activite d'un schedule directement sur le disque (volume /config), sans passer par la web UI. Les logs generaux (web, demarrage) restent dans /config/logs/davos.log.

Implementation : RunnableSchedule place le nom du schedule dans le MDC pendant l'execution ; la config log4j2 release route les evenements via un RoutingAppender (fichier dedie quand un run est en cours, davos.log sinon).

Version passee a 2.5.0.

Note

Comme les notifications ne partent que lorsqu'un scan telecharge effectivement des fichiers, si un schedule ne trouve rien de neuf, aucun digest n'est envoye (c'est voulu). Le log par schedule, lui, est ecrit a chaque run et permet de verifier ce qui s'est passe.

Notifications :
- Discord et Apprise envoient desormais un seul digest en fin de scan, listant
  les fichiers telecharges, au lieu d'un message par fichier. La liste est
  decoupee en lots (20 lignes par message, avec une courte pause entre les
  envois) pour ne pas se faire limiter par Discord. Aucun message n'est envoye
  si le scan ne telecharge rien.
- Introduit l'interface ScheduleSummaryAction (action de fin de run recevant la
  liste des fichiers telecharges) ; Discord et Apprise l'implementent et sont
  desormais routes via ScheduleConfiguration.getSummaryActions().
- DownloadFilesWorkflowStep collecte les fichiers reellement telecharges
  (etat FINISHED) et declenche les actions de digest a la fin du run.
- Pushbullet et Amazon SNS restent inchanges (un message par fichier).

Logs par schedule :
- RunnableSchedule place le nom du schedule dans le MDC pendant l'execution.
- La configuration log4j2 release route les logs d'un run vers
  /config/logs/schedules/<nom>.log via un RoutingAppender ; les logs hors run
  restent dans /config/logs/davos.log.

Passe la version a 2.5.0 et met a jour le changelog.
@Aerya Aerya merged commit 457ee47 into master Jun 17, 2026
1 check passed
@Aerya Aerya deleted the feature/notif-digest-and-per-schedule-logs branch June 17, 2026 10:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant