2016-06-13 6 views
2

У меня есть следующий компонент:весна-интегрально-AWS управления SqsMessageDrivenChannelAdapter шины

@Bean 
public MessageProducer sqsMessageAdapter() { 
    SqsMessageDrivenChannelAdapter adapter = new SqsMessageDrivenChannelAdapter(this.amazonSqs, awsConfiguration.myQueue.get()); 
    adapter.setAutoStartup(true); 
    adapter.setMaxNumberOfMessages(1); 
    adapter.setSendTimeout(2000); 
    adapter.setVisibilityTimeout(200); 
    adapter.setWaitTimeOut(20); 
    adapter.setOutputChannel(this.myOutput); 
    return adapter; 
} 

ДОПОЛНИТЕЛЬНО: Я пытаюсь найти способ остановки/запуска опроса по команде, я делаю это с помощью аннотации без xml.

В настоящее время я использую SqsMessageDrivenChannelAdapter и вызывая метод stop, после чего начинается, когда я хочу перезапустить адаптер канала. Проблема, с которой я сталкиваюсь, заключается в том, что исключение тайм-аута выбрасывается в методе остановки, независимо от настроек таймаута. Это происходит на вызове future.get() (строка 197 из SimpleMessageListenerContainer) Я думаю, что это приводит к тому, что запуск не работает. Начало не выбрасывает никаких исключений, но голосующий не подхватывает новые сообщения

UPDATE:

пуска и останова, кажется, работают правильно команды. Проблема, кажется, что я не могу установить свойство:

public void setQueueStopTimeout(long queueStopTimeout) { 
    this.queueStopTimeout = queueStopTimeout; 
} 

Это живет с SimpleMessageListenerContainer.java из SqsMessageDrivenChannelAdapter.java без этого я получаю таймауты, как по умолчанию не достаточно долго.

ответ

0

Ваш вопрос непонятен. Пожалуйста, подумайте о том, чтобы быть более конкретным в будущем.

В любом случае позвольте мне угадать, что вы имеете в виду start()/stop() операции этого SqsMessageDrivenChannelAdapter. Не уверен, что в чем проблема, чтобы ввести его в нужное место и вызвать эти методы.

@Autowired 
@Qualifier("sqsMessageAdapter") 
private Lifecycle sqsMessageAdapter; 
+0

Я попытался сделать это, 'stop()' приводит к 'TimeoutException', а затем останавливается. Однако, когда я вызываю 'start()' i get 'SqsMessageDrivenChannelAdapter: начал sqsMessageAdapter, но не проверяет ни одно из новых сообщений. – pfitzsimons

+0

Не знаете, в чем проблема, но мои тесты против Spring Spring AWS 1.1.0.RELEASE работают хорошо. –

+0

Я отредактировал вопрос, чтобы быть более конкретным, Cheers. – pfitzsimons

 Смежные вопросы

  • Нет связанных вопросов^_^