The Worker
file: bin/zmqx_worker.pl @d72295310
1: #!/usr/bin/env perl
2: use 5.016;
3: use ZMQx::Class;
4: use ZMQx::Class::AnyEvent;
5:
6: my $in = ZMQx::Class->socket('PULL', connect=>'tcp://localhost:10002');
7: my $out = ZMQx::Class->socket('PUB', connect=>'tcp://localhost:10003');
8:
9: say "Worker $$ up & running";
10:
11: my $w = ZMQx::Class::AnyEvent->watcher( $in, sub {
12: while (my $message = $in->receive) {
13: my ($task_id, $index, $word) = @$message;
14:
15: my $cost = length( $word );
16: sleep( $cost );
17:
18: say "$task_id: handled by worker $$: $index:$word:$cost";
19: $out->send([$task_id, $index, $word, $cost, $$]);
20: }
21: });
22: AnyEvent->condvar->recv;