The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Minion::Command::minion::jobx - The clone of Minion::Command::minion::job but with some output changes.

VERSION

Version 0.01

SYNOPSIS

This module will work the same as Minion::Command::minion::job but with some differences.

1) Display timestamps instead of epoch times.

   {
      "args" => [
         "/some/path/to/some/file",
         "/some/other/path/to/some/file"
       ],
       "attempts" => 1,
       "children" => [],
       "created" => "Wed Aug  3 15:05:00 2016",
       "delayed" => "Wed Aug  3 15:05:00 2016",
       "finished" => "Wed Aug  3 15:05:26 2016",
       "id" => 1853,
       "parents" => [
	      1852
        ],
        "priority" => 0,
        "queue" => "default",
        "result" => {
           "output" => "done"
        },
        "retried" => undef,
        "retries" => 0,
        "started" => "Wed Aug  3 15:05:05 2016",
        "state" => "finished",
        "task" => "task_a",
        "worker" => 108
   }

2) Add "created", "started" and "finished" times to the list of jobs. Column headers included.

$./script/app minion jobx -l 5
id    state     queue    created                     started                     finished                    task
2507  finished  default  [Thu Aug 18 16:23:25 2016]  [Thu Aug 18 16:23:32 2016]  [Thu Aug 18 16:23:38 2016]  some_task
2506  finished  default  [Thu Aug 18 16:23:25 2016]  [Thu Aug 18 16:23:31 2016]  [Thu Aug 18 16:23:34 2016]  some_task
2505  finished  default  [Thu Aug 18 16:23:25 2016]  [Thu Aug 18 16:23:30 2016]  [Thu Aug 18 16:23:41 2016]  some_task
2504  finished  default  [Thu Aug 18 16:23:25 2016]  [Thu Aug 18 16:23:30 2016]  [Thu Aug 18 16:23:36 2016]  some_task
2503  finished  default  [Thu Aug 18 16:23:25 2016]  [Thu Aug 18 16:23:25 2016]  [Thu Aug 18 16:23:33 2016]  some_task

USAGE

Usage: APPLICATION minion jobx [OPTIONS] [ID]

  ./myapp.pl minion jobx
  ./myapp.pl minion jobx 10023
  ./myapp.pl minion jobx -w
  ./myapp.pl minion jobx -w 23
  ./myapp.pl minion jobx -s
  ./myapp.pl minion jobx -q important -t foo -S inactive
  ./myapp.pl minion jobx -e foo -a '[23, "bar"]'
  ./myapp.pl minion jobx -e foo -P 10023 -P 10024 -p 5 -q important
  ./myapp.pl minion jobx -R -d 10 10023
  ./myapp.pl minion jobx -r 10023

Options:
  -A, --attempts <number>   Number of times performing this new job will be
                            attempted, defaults to 1
  -a, --args <JSON array>   Arguments for new job in JSON format
  -d, --delay <seconds>     Delay new job for this many seconds
  -e, --enqueue <name>      New job to be enqueued
  -h, --help                Show this summary of available options
  --home <path>             Path to home directory of your application,
                            defaults to the value of MOJO_HOME or
                            auto-detection
  -l, --limit <number>      Number of jobs/workers to show when listing them,
                            defaults to 100
  -m, --mode <name>         Operating mode for your application, defaults to
                            the value of MOJO_MODE/PLACK_ENV or "development"
  -o, --offset <number>     Number of jobs/workers to skip when listing them,
                            defaults to 0
  -P, --parent <id>         One or more jobs the new job depends on
  -p, --priority <number>   Priority of new job, defaults to 0
  -q, --queue <name>        Queue to put new job in, defaults to "default", or
                            list only jobs in this queue
  -R, --retry               Retry job
  -r, --remove              Remove job
  -S, --state <state>       List only jobs in this state
  -s, --stats               Show queue statistics
  -t, --task <name>         List only jobs for this task
  -w, --workers             List workers instead of jobs, or show information
                            for a specific worker

ATTRIBUTES

Minion::Command::minion::job inherits all attributes from Mojolicious::Command and implements the following new ones.

description

my $description = $job->description;
$job            = $job->description('Foo');
   
Short description of this command, used for the command list.
   

usage

my $usage = $job->usage;
$job      = $job->usage('Foo');
   
Usage information for this command, used for the help screen.
   

METHODS

Minion::Command::minion::job inherits all methods from Mojolicious::Command and implements the following new ones.

run

$job->run(@ARGV);
 
Run this command.

TO DO

- Allow command line option to let user pick which timestamps are included in the list of jobs
  

SEE ALSO

Minion, Mojolicious::Guides, http://mojolicious.org.

ACKNOWLEDGEMENTS

Most of the code comes from Minion::Command::minion::job written by Sebastian Riedel (SRI).