gatherer: add watchdog triggered by wget

This commit is contained in:
Astro 2022-11-14 21:52:48 +01:00
parent 4684274d6d
commit 55a903322e
2 changed files with 24 additions and 0 deletions

View File

@ -11,6 +11,7 @@ use axum::{
Router, middleware::{Next, self}, body::Body,
};
use axum_extra::routing::SpaRouter;
use cave::systemd;
use crate::{
html_template::HtmlTemplate,
RequestFactory,
@ -58,6 +59,10 @@ impl TrendsPage {
async fn generate(language: Option<String>, mux: Mux) -> Self {
let (results, languages) = mux.request(language.clone()).await;
// redis queries done, data is ready for rendering, means the
// service is very much alive:
systemd::watchdog();
TrendsPage {
language,
languages,

View File

@ -118,6 +118,7 @@ in
serviceConfig = {
ExecStart = "${pkgs.caveman-gatherer}/bin/caveman-gatherer ${gathererConfigFile}";
Type = "notify";
WatchdogSec = 90;
Restart = "always";
RestartSec = 10;
DynamicUser = true;
@ -136,5 +137,23 @@ in
WorkingDirectory = "${pkgs.caveman-gatherer}/share/caveman/gatherer";
};
};
systemd.timers.caveman-gatherer-probe = lib.mkIf cfg.gatherer.enable {
wantedBy = [ "timers.target" ];
timerConfig.OnCalendar = "minutely";
};
systemd.services.caveman-gatherer-probe = lib.mkIf cfg.gatherer.enable {
requires = [ "caveman-gatherer.service" ];
serviceConfig = {
Type = "oneshot";
User = "caveman-gatherer-probe";
DynamicUser = true;
ProtectSystem = "full";
};
path = with pkgs; [ wget ];
script = ''
wget -O /dev/null --user-agent=caveman-gatherer-probe 127.0.0.1:${toString gathererSettings.listen_port}/
'';
};
};
}