public
Description: Random tiny examples of PAL scripts for OpenAMQ
Homepage: http://www.openamq.org
Clone URL: git://github.com/pieterh/openamq-pal-examples.git
openamq-pal-examples / echo_client.pal
100644 79 lines (70 sloc) 3.231 kb
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?xml?>
<pal script = "amq_pal_gen">
    This script publishes messages to the "echo server". It waits for a
    response from the "echo server" before publishing the next message.
 
    Use it in combination with echo_server.pal to measure server latency.
 
    <!-- Number of messages to send -->
    <set name = "count" value = "10000" cmdline = "C" />
 
    <!-- Size of each message body -->
    <set name = "size" value = "128" cmdline = "S" />
 
    <!-- Log number of messages sent/received every N messages,
         0=disable -->
    <set name = "log_interval" value = "0" cmdline = "L" />
 
    <set name = "received" value = "0" />
    <set name = "total_received" value = "0" />
    <set name = "sent" value = "0" />
    <set name = "total_sent" value = "0" />
 
    <echo>I: Sending $count messages of $size bytes ...</echo>
    <session exchange = "amq.direct">
        <queue_declare />
        <queue_bind queue = "$queue" routing_key = "$queue" />
        <basic_consume queue = "$queue" auto_ack = "1" />
 
        <repeat times = "$count" counter = "id">
            <basic_content fill = "random" size = "$size"
                           message_id = "msg-$id" reply_to = "$queue" />
            <basic_publish routing_key = "echo server" mandatory = "1" />
            <wait timeout = "1" />
            <inc name = "total_sent" />
            <if name = "log_interval" test = "ne" value = "0" >
                <inc name = "sent" />
                <if name = "sent" value = "log_interval" >
                    <echo>I: Sent $total_sent messages</echo>
                    <set name = "sent" value = "0" />
                </if>
            </if>
            <basic_arrived>
                <inc name = "total_received" />
                <if name = "log_interval" test = "ne" value = "0" >
                    <inc name = "received" />
                    <if name = "received" value = "log_interval" >
                        <echo>I: Received $total_received messages</echo>
                        <set name = "received" value = "0" />
                    </if>
                </if>
            </basic_arrived>
        </repeat>
        <echo>I: Sent all messages</echo>
        <if name = "total_received" value = "count" >
            <echo>I: Received all messages</echo>
            <exit />
        </if>
        <echo>I: Received $total_received messages, waiting for remainder</echo>
        <repeat>
            <wait />
            <basic_arrived>
                <inc name = "total_received" />
                <if name = "log_interval" test = "ne" value = "0" >
                    <inc name = "received" />
                    <if name = "received" value = "log_interval" >
                        <echo>I: Received $total_received messages</echo>
                        <set name = "received" value = "0" />
                    </if>
                </if>
                <if name = "total_received" value = "count" >
                    <echo>I: Received all messages</echo>
                    <exit />
                </if>
            </basic_arrived>
        </repeat>
    </session>
</pal>