У меня есть приложение Spring Boot с аннотированным методом ServiceActivator для чтения объектов сообщений из очереди. Что-то вроде:
@EnableBinding(Sink.class)
public class MyProcessor {
@ServiceActivator(inputChannel = Sink.INPUT)
public void process(final Message<?> message) {
// ...
}
}
Однако теперь у меня есть требование загрузить пользовательский скрипт и использовать его для предварительной обработки полезных данных сообщений. Эта загрузка может завершиться с ошибкой или сценарий может не скомпилироваться. Если это произойдет, я хочу не запускать мой приемник и просто оставлять сообщения в очереди, пока проблема не будет устранена и приложение не будет перезапущено.
ServiceActivator имеет атрибут autostartup, поэтому мне кажется, что я могу установить для него значение false, а затем запустить приемник вручную, когда я убедился, что сценарий в порядке. Тем не менее, я не могу понять, как и когда делать этот ручной запуск.