Bladeren bron

RabbitMQ implementation

Daniel Garcia Costa 2 jaren geleden
bovenliggende
commit
5d2c8680f3

+ 4 - 0
pom.xml

@@ -33,6 +33,10 @@
 			<artifactId>spring-boot-starter-test</artifactId>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-amqp</artifactId>
+		</dependency>
 	</dependencies>
 
 	<build>

+ 21 - 0
src/main/java/es/uv/garcosda/config/RabbitMQConfig.java

@@ -0,0 +1,21 @@
+package es.uv.garcosda.config;
+
+import org.springframework.amqp.core.Queue;
+import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class RabbitMQConfig {
+
+	@Bean
+    public Queue createUserRegistrationQueue() {
+        return new Queue("q.notifications");
+    }
+	
+	@Bean
+	public Jackson2JsonMessageConverter converter() {
+	    return new Jackson2JsonMessageConverter();
+	}
+	
+}

+ 7 - 1
src/main/java/es/uv/garcosda/services/DocumentService.java

@@ -6,6 +6,8 @@ import java.util.List;
 import java.util.Random;
 import java.util.stream.Collectors;
 
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -18,6 +20,9 @@ public class DocumentService {
 	@Autowired
 	NotificationService ns;
 	
+	@Autowired
+	RabbitTemplate rabitt;
+	
 	private List<Document> documents;
 	private Random rd;
 	
@@ -35,11 +40,12 @@ public class DocumentService {
 	}
 	
 	public boolean add(Document document) {
-		this.compute(document);
+		this.rabitt.convertAndSend("", "q.notifications", document);
 		boolean n = this.documents.add(document);
 		return n;
 	}
 	
+	@RabbitListener(queues = {"q.notifications"})
 	public void compute(Document document) {
 		try {
 		    Thread.sleep(10 * 1000);

+ 4 - 1
src/main/resources/application.properties

@@ -1 +1,4 @@
-
+spring.rabbitmq.host=localhost
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=guest
+spring.rabbitmq.password=guest