From b4bb68b7c328742cb49f517d90ea46c75ee2979d Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 3 May 2019 18:26:05 +0200 Subject: Add worker command for Docker setups (#9) --- lib/Travelynx/Command/worker.pm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 lib/Travelynx/Command/worker.pm diff --git a/lib/Travelynx/Command/worker.pm b/lib/Travelynx/Command/worker.pm new file mode 100644 index 0000000..6b70f2e --- /dev/null +++ b/lib/Travelynx/Command/worker.pm @@ -0,0 +1,36 @@ +package Travelynx::Command::worker; +use Mojo::Base 'Mojolicious::Command'; +use Mojo::IOLoop; + +has description => + 'travelynx background worker'; + +has usage => sub { shift->extract_usage }; + +sub run { + my ($self) = @_; + + Mojo::IOLoop->recurring(180 => sub { + $self->app->start('work'); + }); + + Mojo::IOLoop->recurring(3600 => sub { + $self->app->start('maintenance'); + }); + + if (not Mojo::IOLoop->is_running) { + Mojo::IOLoop->start; + } +} + +1; + +__END__ + +=head1 SYNOPSIS + + Usage: index.pl worker + + Background worker for cron-less setups, e.g. Docker. + + Calls "index.pl work" every 3 minutes and "index.pl maintenance" every 1 hour. -- cgit v1.2.3