Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mojolicious/minion
:octopus: Perl high performance job queue
https://github.com/mojolicious/minion
job-queue mojolicious perl postgresql
Last synced: about 20 hours ago
JSON representation
:octopus: Perl high performance job queue
- Host: GitHub
- URL: https://github.com/mojolicious/minion
- Owner: mojolicious
- License: artistic-2.0
- Created: 2014-03-27T19:05:37.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2024-09-21T13:53:47.000Z (3 months ago)
- Last Synced: 2024-12-14T19:04:31.987Z (8 days ago)
- Topics: job-queue, mojolicious, perl, postgresql
- Language: Perl
- Homepage: https://metacpan.org/release/Minion
- Size: 5.58 MB
- Stars: 229
- Watchers: 40
- Forks: 56
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
![Screenshot](https://raw.github.com/mojolicious/minion/main/examples/admin.png?raw=true)
[![](https://github.com/mojolicious/minion/workflows/linux/badge.svg)](https://github.com/mojolicious/minion/actions)
A high performance job queue for the Perl programming language. Also available for [Node.js](https://github.com/mojolicious/minion.js).
Minion comes with support for multiple named queues, priorities, high priority fast lane, delayed jobs, job
dependencies, job progress, job results, retries with backoff, rate limiting, unique jobs, expiring jobs, statistics,
distributed workers, parallel processing, autoscaling, remote control, [Mojolicious](https://mojolicious.org) admin ui,
resource leak protection and multiple backends (such as [PostgreSQL](https://www.postgresql.org)).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.```perl
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.');
};app->start;
```Just start one or more background worker processes in addition to your web server.
$ ./myapp.pl minion worker
## Installation
All you need is a one-liner, it takes less than a minute.
$ curl -L https://cpanmin.us | perl - -M https://cpan.metacpan.org -n Minion
We recommend the use of a [Perlbrew](http://perlbrew.pl) environment.
## Want to know more?
Take a look at our excellent [documentation](https://mojolicious.org/perldoc/Minion/Guide)!