NAME

Dancer2::Plugin::Minion - Use the Minion job queue in your Dancer2 apps.

VERSION

version 0.1.0

SYNOPSIS

    package MyApp;
    use Dancer2;
    use Dancer2::Plugin::Minion;

    get '/' => sub {
        add_task( add => sub {
            my ($job, $first, $second) = @_;
            $job->finish($first + $second);
        });
    };

    get '/another-route' => sub {
        my $id = enqueue(add => [1, 1]);
        # Do something with $id
    };

    get '/yet-another-route' => sub {
        # Get a job ID, then...
        my $result = minion->job($id)->info->{result};
    };

    # In config.yml
    plugins:
        Minion:
            dsn: sqlite:test.db
            backend: SQLite

DESCRIPTION

Dancer2::Plugin::Minion makes it easy to add a job queue to any of your Dancer2 applications. The queue is powered by Minion and uses a backend of your choosing, such as PostgreSQL or SQLite.

The plugin lazily instantiates a Minion object, which is accessible via the minion keyword. Any method, attribute, or event you need in Minion is available via this keyword. Additionally, add_task and enqueue keywords are available to make it convenient to add and start new queued jobs.

See the Minion documentation for more complete documentation on the methods and functionality available.

NAME

Dancer2::Plugin::Minion - Easy access to Minion job queue in your Dancer2 applications

ATTRIBUTES

minion

The Minion-based object. See the Minion documentation for a list of additional methods provided.

METHODS

add_task()

Keyword/shortcut for minion-add_task()>. See Minion's add_task() documentation for more information.

enqueue()

Keyword/shortcut for minion-enqueue()>. See Minion's enqueue() documentation for more information.

RUNNING JOBS

You will need to create a Minion worker if you want to be able to run your queued jobs. Thankfully, you can write a minimal worker with just a few lines of code:

    #!/usr/bin/env perl

    use Dancer2;
    use Dancer2::Plugin::Minion;
    use MyJobLib;

    minion->add_task( my_job_1 => MyJobLib::job1());

    my $worker = Minion::Worker->new( minion );
    $worker->run;

By using Dancer2::Plugin::Minion, your worker will be configured with the settings provided in your config.yml file. See Minion::Worker for more information.

SEE ALSO

AUTHOR

Jason A. Crome cromedome AT cpan DOT org

ACKNOWLEDGEMENTS

I'd like to extend a hearty thanks to my employer, Clearbuilt Technologies, for giving me the necessary time and support for this module to come to life.

COPYRIGHT AND LICENSE

Copyright (c) 2020, Clearbuilt Technologies.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

AUTHOR

Jason A. Crome <cromedome@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by Clearbuilt Technologies.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.