NAME

JobCenter::Client::Mojo - JobCenter JSON-RPC 2.0 Api client using Mojo.

SYNOPSIS

use JobCenter::Client::Mojo;

 my $client = JobCenter::Client::Mojo->new(
   address => ...
   port => ...
   who => ...
   token => ...
 );

 my ($job_id, $outargs) = $client->call(
   wfname => 'test',
   inargs => { test => 'test' },
 );

DESCRIPTION

JobCenter::Client::Mojo is a class to build a client to connect to the JSON-RPC 2.0 Api of the JobCenter workflow engine. The client can be used to create and inspect jobs as well as for providing 'worker' services to the JobCenter.

METHODS

new

$client = JobCenter::Client::Mojo->new(%arguments);

Class method that returns a new JobCenter::Client::Mojo object.

Valid arguments are:

- address: address of the Api.

(default: 127.0.0.1)

- port: port of the Api

(default 6522)

- tls: connect using tls

(default false)

- who: who to authenticate as.

(required)

- method: how to authenticate.

(default: password)

- token: token to authenticate with.

(required)

- debug: when true prints debugging using Mojo::Log

(default: false)

- json: flag wether input is json or perl.

when true expects the inargs to be valid json, when false a perl hashref is expected and json encoded. (default true)

- log: Mojo::Log object to use

(per default a new Mojo::Log object is created)

- timeout: how long to wait for operations to complete

(default 60 seconds)

call

($job_id, $result) = $client->call(%args);

Creates a new JobCenter job and waits for the results. Throws an error if somethings goes wrong immediately. Errors encountered during later processing are returned as a JobCenter error object.

Valid arguments are:

- wfname: name of the workflow to call (required)
- inargs: input arguments for the workflow (if any)
- vtag: version tag of the workflow to use (optional)

call_nb

$job_id = $client->call_nb(%args);

Creates a new JobCenter job and call the provided callback on completion of the job. Throws an error if somethings goes wrong immediately. Errors encountered during later processing are returned as a JobCenter error object to the callback.

Valid arguments are those for call and:

- cb: coderef to the callback to call on completion (requird)

( cb => sub { ($job_id, $outargs) = @_; ... } )

($job_id, $result) = $client->get_job_status($job_id);

Retrieves the status for the given $job_id. If the job_id does not exist then the returned $job_id will be undefined and $result will be an error message. If the job has not finished executing then both $job_id and $result will be undefined. Otherwise the $result will contain the result of the job. (Which may be a JobCenter error object)

announce

Announces the capability to do an action to the Api. The provided callback will be called when there is a task to be performed. Returns an error when there was a problem announcing the action.

my $err = $client->announce(
  actionname => '...',
  cb => sub { ... },
);
die "could not announce $actionname?: $err" if $err;

See jcworker for an example.

Valid arguments are:

- actionname: name of the action

(required)

- cb: callback to be called for the action

(required)

- async: if true then the callback gets passed another callback as the last argument that is to be called on completion of the task.

(default false)

- slots: the amount of tasks the worker is able to process in parallel for this action.

(default 1)

work

Starts the Mojo::IOLoop.

SEE ALSO

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 515:

Unknown directive: =head

Around line 569:

'=item' outside of any '=over'

=over without closing =back