plugin
Minion
=> {
SQLite
=>
'sqlite:queue.db'
};
plugin
'Minion::Starter'
=> {
debug
=> 1,
spawn
=> 2 };
sleep
1;
my
$called
;
app->minion->add_task(
sleep
=>
sub
{
sleep
1;
});
get
'/'
=>
sub
{
my
$c
=
shift
;
$c
->render(
'text'
=>
'ok'
);
};
get
'/enqueue'
=>
sub
{
my
$c
=
shift
;
my
$j
=
$c
->minion->enqueue(
'sleep'
);
$c
->render(
'json'
=> {
job
=>
$j
});
};
get
'/state/:id'
=>
sub
{
my
$c
=
shift
;
my
$job
=
$c
->minion->job(
$c
->stash(
'id'
));
$c
->render(
'json'
=> {
job
=>
$c
->stash(
'id'
),
info
=>
$job
->info });
};
unlink
'queue.db'
,
'queue.db-wal'
,
'queue.db-shm'
;
sleep
1;
my
$t
= Test::Mojo->new;
$t
->get_ok(
'/'
)->status_is(200);
my
$ok
=
$t
->tx->res->body;
cmp_ok
$ok
,
'eq'
,
'ok'
,
'got response'
;
$t
->get_ok(
'/enqueue'
)->status_is(200);
my
$j
=
$t
->tx->res->json->{job};
cmp_ok
$j
,
'=='
, 1,
'enqueued job'
;
unlink
'queue.db'
,
'queue.db-wal'
,
'queue.db-shm'
;
done_testing;