All Projects → mojolicious → Minion

mojolicious / Minion

Licence: artistic-2.0
🐙 Perl job queue

Programming Languages

perl
6916 projects

Projects that are alternatives of or similar to Minion

Starter
Opinionated SaaS quick-start with pre-built user account and organization system for full-stack application development in React, Node.js, GraphQL and PostgreSQL. Powered by PostGraphile, TypeScript, Apollo Client, Graphile Worker, Graphile Migrate, GraphQL Code Generator, Ant Design and Next.js
Stars: ✭ 1,082 (+511.3%)
Mutual labels:  job-queue, postgresql
Worker
High performance Node.js/PostgreSQL job queue (also suitable for getting jobs generated by PostgreSQL triggers/functions out into a different work queue)
Stars: ✭ 638 (+260.45%)
Mutual labels:  job-queue, postgresql
Usaspending Api
Server application to serve U.S. federal spending data via a RESTful API
Stars: ✭ 166 (-6.21%)
Mutual labels:  postgresql
Fhirbase
Your persistence layer for FHIR data
Stars: ✭ 175 (-1.13%)
Mutual labels:  postgresql
Hibernate Reactive
A reactive API for Hibernate ORM, supporting non-blocking database drivers and a reactive style of interaction with the database.
Stars: ✭ 167 (-5.65%)
Mutual labels:  postgresql
Sqlcheck
Automatically identify anti-patterns in SQL queries
Stars: ✭ 2,062 (+1064.97%)
Mutual labels:  postgresql
Docker Django
A project to get you started with Docker and Django.
Stars: ✭ 170 (-3.95%)
Mutual labels:  postgresql
Manage Fastapi
🚀 CLI tool for FastAPI. Generating new FastAPI projects & boilerplates made easy.
Stars: ✭ 163 (-7.91%)
Mutual labels:  postgresql
Qxorm
QxOrm library - C++ Qt ORM (Object Relational Mapping) and ODM (Object Document Mapper) library - Official repository
Stars: ✭ 176 (-0.56%)
Mutual labels:  postgresql
Rom Sql
SQL support for rom-rb
Stars: ✭ 169 (-4.52%)
Mutual labels:  postgresql
Sql Battleships
Play Battleships on PostgreSQL
Stars: ✭ 174 (-1.69%)
Mutual labels:  postgresql
Uyuni
Source code for Uyuni
Stars: ✭ 169 (-4.52%)
Mutual labels:  postgresql
Honeysql Postgres
PostgreSQL extension for honeysql
Stars: ✭ 166 (-6.21%)
Mutual labels:  postgresql
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (+1149.15%)
Mutual labels:  postgresql
Holycorn
Community version of the PostgreSQL multi-purpose Ruby Foreign Data Wrapper
Stars: ✭ 166 (-6.21%)
Mutual labels:  postgresql
Nanodbc
A small C++ wrapper for the native C ODBC API | Requires C++14 since v2.12
Stars: ✭ 175 (-1.13%)
Mutual labels:  postgresql
Neo4j Etl
Data import from relational databases to Neo4j.
Stars: ✭ 165 (-6.78%)
Mutual labels:  postgresql
Old Rustorm
An ORM for rust
Stars: ✭ 168 (-5.08%)
Mutual labels:  postgresql
Agensgraph Extension
A graph database extension for PostgreSQL
Stars: ✭ 170 (-3.95%)
Mutual labels:  postgresql
Postgresqltuner
Simple script to analyse your PostgreSQL database configuration, and give tuning advice
Stars: ✭ 2,214 (+1150.85%)
Mutual labels:  postgresql

Minion

Screenshot

A high performance job queue for the Perl programming language, 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 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://[email protected]/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 environment.

Want to know more?

Take a look at our excellent documentation!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].