-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjms_producer.groovy
More file actions
61 lines (50 loc) · 2.05 KB
/
jms_producer.groovy
File metadata and controls
61 lines (50 loc) · 2.05 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
@GrabConfig(systemClassLoader=true)
@Grapes([
@Grab(group='org.apache.activemq', module='activemq-all', version='5.16.5'),
@Grab(group='ch.qos.logback', module='logback-classic', version='1.5.12')
])
import javax.jms.*
import org.apache.activemq.ActiveMQConnectionFactory
// Configuración de ActiveMQ
String brokerUrl = "tcp://localhost:61616" // Cambia esto si tu ActiveMQ usa otro puerto o protocolo
String queueName = "orders"
// Crear una conexión a ActiveMQ
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl)
Connection connection = connectionFactory.createConnection()
connection.start()
// Crear sesión y cola
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
Destination destination = session.createQueue(queueName)
// Crear un productor
MessageProducer producer = session.createProducer(destination)
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT)
// Enviar mensajes a la cola
println "Enviando mensajes a la cola JMS '${queueName}'..."
// def orders = [
// [id: 1, type: 'electronic', group: 'A'],
// [id: 2, type: 'clothes', group: 'B'],
// [id: 3, type: 'electronic', group: 'A'],
// [id: 4, type: 'clothes', group: 'B'],
// [id: 5, type: 'electronic', group: 'A'],
// [id: 6, type: 'clothes', group: 'B']
// ]
// orders.each { order ->
// TextMessage message = session.createTextMessage(order.toString())
// message.setStringProperty("type", order.type)
// message.setStringProperty("group", order.group)
// producer.send(message)
// println "Mensaje enviado: ${order}"
// }
(1..5).each { i ->
String messageContent = "Order ${i} - Priority: ${(i % 2 == 0) ? 'High' : 'Low'}"
TextMessage message = session.createTextMessage(messageContent)
message.setStringProperty("type", (i % 2 == 0) ? "electronics" : "clothing")
message.setStringProperty("priority", (i % 2 == 0) ? "high" : "low")
producer.send(message)
println "Mensaje enviado: ${messageContent}"
}
// Cerrar recursos
producer.close()
session.close()
connection.close()
println "Todos los mensajes han sido enviados."