Skip to content

Instantly share code, notes, and snippets.

@sitetechie
Last active August 29, 2015 14:16
Show Gist options
  • Save sitetechie/df9fc6f128f5ff7009cd to your computer and use it in GitHub Desktop.
Save sitetechie/df9fc6f128f5ff7009cd to your computer and use it in GitHub Desktop.
BPM::Engine::Plugin::TaskRunner
package BPM::Engine::Plugin::TaskRunner;
use Moose::Role;
use My::TaskRunner;
has 'taskrunner' => (
is => 'rw',
lazy_build => 1,
);
sub _build_taskrunner {
my $self = shift;
return My::TaskRunner->new(
process => $self->process,
process_instance => $self->process_instance
);
}
override 'execute_task' => sub {
my ($self, $task, $instance) = @_;
if($self->cb_execute_task($task, $instance)) {
my $job = $self->taskrunner->run_task($task, $instance);
# taskrunner could put some work in a queue, or execute it synchronously
if($job->result) {
$self->taskrunner->apply_results($job, $instance);
return 1;
}
}
return 0;
}
no Moose::Role;
1;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment