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).