Skip to content

Instantly share code, notes, and snippets.

@ferki
Created August 22, 2019 17:03
Show Gist options
  • Save ferki/9ce3405410783aba8d496c8a7d502269 to your computer and use it in GitHub Desktop.
Save ferki/9ce3405410783aba8d496c8a7d502269 to your computer and use it in GitHub Desktop.
Rex+Minion
use strict;
use warnings;
use Rex -feature => [ '1.4', 'exec_autodie' ];
use Time::HiRes qw(time);
use Minion;
my $minion = Minion->new( SQLite => 'sqlite:/tmp/minion.backend' );
add_minion_tasks();
use DDP;
no_ssh task 'enqueue', sub {
my $params = shift;
$minion->reset if $params->{reset};
$minion->enqueue( rex => [ $params->{task}, $params->{message} ] );
};
no_ssh task 'worker', sub {
my $worker = $minion->worker;
$worker->run;
};
no_ssh task 'stats', sub {
p $minion->stats;
};
task 'config', sub {
my $params = shift;
my $time = time;
LOCAL {
file '/tmp/minion.1', content => qq($time $params->{message});
}
};
sub add_minion_tasks {
$minion->add_task(
rex => sub {
my ( $job, $task, $message ) = @_;
run_task $task, params => { message => $message };
}
);
}
1;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment