Acme-CPANModulesBundle-Import-MojoliciousAdvent-2018
view release on metacpan or search on metacpan
devdata/https_mojolicious.io_blog_2018_12_12_dancer-and-minion_ view on Meta::CPAN
178179180181182183184185186187188189190191192193194195196197198199200201202203);
</code></pre>
<p>We wrapped a simple Moose class
around
Minion to make it easy to add to any class or Dancer application
with
the extra functionality we wanted.</p>
<p>We ran into an issue at one point where jobs weren&
#39;t running since we added them to a queue that no worker was configured to handle. To prevent this from happening to us again,
we added code to prevent us from adding code to a queue that didn&
#39;t exist:</p>
<pre><code>
my
@QUEUE_TYPES
=
qw( default InstantXML PayrollXML ChangeRequest )
;
sub
has_invalid_queues(
$self
,
@queues
) {
return
1
if
$self
-
>
;get_invalid_queues(
@queues
);
return
0;
}
sub
get_invalid_queues(
$self
,
@queues
) {
my
%queue_map
;
@queue_map
{
@QUEUE_TYPES
} = ();
my
@invalid_queues
=
grep
!
exists
$queue_map
{
$_
},
@queues
;
return
@invalid_queues
;
}
</code></pre>
<p>With that in place, it was easy
for
our
<code>queue_job()</code> method to throw an error
if
the developer tried to add a job to an invalid queue:</p>
<pre><code>
sub
queue_job(
$self
,
$args
) {
( run in 0.212 second using v1.01-cache-2.11-cpan-bb97c1e446a )