---
name: "Mojolicious::Plugin::Minion"
section: "3pm"
platform: "linux"
package: "libminion-perl"
version: "10.31+dfsg-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojolicious::Plugin::Minion"
---

# Mojolicious::Plugin::Minion(3pm)

Minion job queue plugin

## NAME

Mojolicious::Plugin::Minion - Minion job queue plugin

## SYNOPSIS

```
  # Mojolicious (choose a backend)
  $self->plugin(Minion => {Pg => 'postgresql://postgres@/test'});
  # Mojolicious::Lite (choose a backend)
  plugin Minion => {Pg => 'postgresql://postgres@/test'};
  # Share the database connection cache (PostgreSQL backend)
  helper pg => sub { state $pg = Mojo::Pg->new('postgresql://postgres@/test') };
  plugin Minion => {Pg => app->pg};
  # Add tasks to your application
  app->minion->add_task(slow_log => sub ($job, $msg) {
    sleep 5;
    $job->app->log->debug(qq{Received message "$msg"});
  });
  # Start jobs from anywhere in your application
  $c->minion->enqueue(slow_log => ['test 123']);
  # Perform jobs in your tests
  $t->get_ok('/start_slow_log_job')->status_is(200);
  $t->get_ok('/start_another_job')->status_is(200);
  $t->app->minion->perform_jobs;
```

## DESCRIPTION

Mojolicious::Plugin::Minion is a Mojolicious plugin for the Minion job queue.

## HELPERS

Mojolicious::Plugin::Minion implements the following helpers.

### minion

```
  my $minion = $app->minion;
  my $minion = $c->minion;
```

Get Minion object for application.

```
  # Add job to the queue
  $c->minion->enqueue(foo => ['bar', 'baz']);
  # Perform jobs for testing
  $app->minion->perform_jobs;
```

## METHODS

Mojolicious::Plugin::Minion inherits all methods from Mojolicious::Plugin and implements the following new ones.

### register

```
  $plugin->register(Mojolicious->new, {Pg => 'postgresql://postgres@/test'});
```

Register plugin in Mojolicious application.

## SEE ALSO

Minion, Minion::Guide, \<https://minion.pm\>, Mojolicious::Guides, \<https://mojolicious.org\>.
