Skip to content
Perl PLpgSQL Other
Branch: master
Clone or download
Latest commit 68ae840 Sep 3, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github more consistent descriptions Jun 29, 2016
examples more consistent examples Aug 15, 2018
t Add experimental cleanup event to Minion::Job Aug 29, 2019
.gitattributes this is Perl Jun 22, 2017
.gitignore updated .gitignore file Aug 21, 2014
.travis.yml show new features Nov 2, 2017
LICENSE first commit Mar 27, 2014
Makefile.PL test a few more result_for_p special cases Feb 1, 2019 we use the mojolicious org now Sep 11, 2018

Minion Build Status


A high performance job queue for the Perl programming language, with support for multiple named queues, priorities, delayed jobs, job dependencies, job progress, job results, retries with backoff, rate limiting, unique jobs, statistics, distributed workers, parallel processing, autoscaling, remote control, Mojolicious admin ui, resource leak protection and multiple backends (such as PostgreSQL).

Job queues allow you to process time and/or computationally intensive tasks in background processes, outside of the request/response lifecycle of web applications. Among those tasks you'll commonly find image resizing, spam filtering, HTTP downloads, building tarballs, warming caches and basically everything else you can imagine that's not super fast.

use Mojolicious::Lite -signatures;

plugin Minion => {Pg => 'postgresql://postgres@/test'};

# Slow task
app->minion->add_task(slow_log => sub ($job, $msg) {
  sleep 5;
  $job->app->log->debug(qq{Received message "$msg"});

# Perform job in a background worker process
get '/log' => sub ($c) {
  $c->minion->enqueue(slow_log => [$c->param('msg') // 'no message']);
  $c->render(text => 'Your message will be logged soon.');


Just start one or more background worker processes in addition to your web server.

$ ./ minion worker


All you need is a one-liner, it takes less than a minute.

$ curl -L | perl - -M -n Minion

We recommend the use of a Perlbrew environment.

Want to know more?

Take a look at our excellent documentation!

You can’t perform that action at this time.