feat: amz add cron job
This commit is contained in:
parent
209bafd70f
commit
6e8f530537
3 changed files with 58 additions and 5 deletions
51
hosts/amzebs-01/modules/laravel-scheduler.nix
Normal file
51
hosts/amzebs-01/modules/laravel-scheduler.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
# Daily scheduled Laravel artisan jobs
|
||||
# Runs artisan finish:reports at 01:00 for production and staging APIs
|
||||
|
||||
let
|
||||
php = pkgs.php82;
|
||||
|
||||
sites = [
|
||||
{
|
||||
domain = "api.ebs.amz.at";
|
||||
user = "api_ebs_amz_at";
|
||||
}
|
||||
{
|
||||
domain = "api.stage.ebs.amz.at";
|
||||
user = "api_stage_ebs_amz_at";
|
||||
}
|
||||
];
|
||||
|
||||
mkArtisanService = site: {
|
||||
name = "artisan-finish-reports-${site.domain}";
|
||||
value = {
|
||||
description = "Laravel artisan finish:reports for ${site.domain}";
|
||||
after = [ "network.target" "mysql.service" "phpfpm-${site.domain}.service" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = site.user;
|
||||
Group = "nginx";
|
||||
WorkingDirectory = "/var/www/${site.domain}";
|
||||
ExecStart = "${php}/bin/php artisan finish:reports";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mkArtisanTimer = site: {
|
||||
name = "artisan-finish-reports-${site.domain}";
|
||||
value = {
|
||||
description = "Daily timer for artisan finish:reports on ${site.domain}";
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnCalendar = "*-*-* 01:00:00";
|
||||
Persistent = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
systemd.services = builtins.listToAttrs (map mkArtisanService sites);
|
||||
systemd.timers = builtins.listToAttrs (map mkArtisanTimer sites);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue