2016-07-16 11 views
2

Ich verwende AmazonSQS & Spring Boot (Feder-Cloud-AWS-Messaging). Ich habe einen Nachrichten-Listener konfiguriert, um Nachrichten aus der Warteschlange mit der Anmerkung @SqsListener zu empfangen.Konfigurieren Sie den Namen der Amazon SQS-Warteschlange im Spring Boot

@SqsListener(value = "indexerQueue", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS) 
public void queueListener(String rawMessage) { 
    ... 
} 

Dies ist ein sehr einfacher Ansatz, aber ich finde nicht die Art und Weise den Namen der Warteschlange Last aus einer Konfigurationsdatei zu machen, weil ich verschiedene Umgebungen haben. Irgendwelche Ideen in dieser Hinsicht?

Antwort

4

Welche Version von spring-cloud-aws-messaging verwenden Sie? Version 1.1 sollte es Ihnen ermöglichen, einen Platzhalter als einen Warteschlangennamen zu verwenden, z.

@SqsListener(value = "${sqs.queue.indexer}", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS) 
public void queueListener(String rawMessage) { 
    ... 
} 

Dann in Ihrer applikations env .properties-Dateien können Sie verschiedene Werte setzen. Zum Beispiel in application-dev.properties:

sqs.queue.indexer=devIndexerQueue 

und in application-production.properties

sqs.queue.indexer=indexerQueue 
+0

Great! Es klappt. Ich verwende Version 1.1.0.RELEASE. – nicolas