forked from rabbitmq/rabbitmq-tutorials
-
Notifications
You must be signed in to change notification settings - Fork 0
/
worker.dart
37 lines (32 loc) · 1.07 KB
/
worker.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import "dart:io";
import "package:dart_amqp/dart_amqp.dart";
void main (List<String> arguments) {
ConnectionSettings settings = new ConnectionSettings(
host: "localhost"
);
Client client = new Client(settings: settings);
ProcessSignal.sigint.watch().listen((_) {
client.close().then((_) {
print("close client");
exit(0);
});
});
String consumeTag = "task_queue";
client
.channel()
.then((Channel channel) {
return channel.qos(0, 1)
.then((Channel channel) =>
channel.queue(consumeTag, durable: true));
})
.then((Queue queue) => queue.consume(noAck: false))
.then((Consumer consumer) {
consumer.listen((AmqpMessage event) {
String payload = event.payloadAsString;
print(" [x] Received ${payload}");
sleep(new Duration(seconds : payload.split(".").length));
print(" [x] Done");
event.ack();
});
});
}