diff options
Diffstat (limited to 'lib/Travelynx/Command')
-rw-r--r-- | lib/Travelynx/Command/worker.pm | 36 |
1 files changed, 36 insertions, 0 deletions
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. |