저는 현재 Spring Integration을 처음 사용합니다.
기본적으로 Java Spring 통합 DSL과 비동기 적으로 여러 파일 위치로 폴링을 시도합니다. 파일 이름을 가져오고 파일 이름과 함께 몇 가지 작업을 수행하고 마지막으로 파일을 S3에 푸시해야합니다. 내 질문은 파일 작업을 수행하는 이러한 작업을 작업 실행자 또는 서비스 활성기 처리기에서 수행 할 수 있는지 여부입니다. 나는 옳은 장소인지 모르겠습니다.Spring Integration Service Activator 핸들러 비즈니스 로직
@Autowired
private AWSFileManager awsFileManager;
@Bean
public IntegrationFlow inboundChannelFlow(@Value("${file.poller.delay}") long delay,
@Value("${file.poller.messages}") int maxMsgsPerPoll,
TaskExecutor taskExecutor, MessageSource<File> fileSource)
{
return IntegrationFlows.from(fileSource,
c -> c.poller(Pollers.fixedDelay(delay)
.taskExecutor(taskExecutor)
.maxMessagesPerPoll(maxMsgsPerPoll)))
.handle("AWSFileManager", "fileUpload")
.channel(ApplicationConfiguration.inboundChannel)
.get();
}
@Bean
TaskExecutor taskExecutor(@Value("${file.poller.thread.pool.size}") int poolSize) {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
//Runnable task1 =() -> {this.methodsamp();};
taskExecutor.setCorePoolSize(poolSize);
//taskExecutor.execute(task1);
return taskExecutor;
}
@Async
public void methodsamp()
{
try
{
awsFileManager.fileUpload();
System.out.println("test");
}
catch(Exception ex)
{
}
여기에 샘플 코드를 첨부했습니다.
매개 변수로 fileUpload 메서드에 전달해야하므로 채널의 파일 이름을 검색 할 수있는 방법이 있습니다. 알려주십시오.
SO 스레드 당 질문을 너무 많이하지 마십시오. –
예. 확실합니다. 다음에 그것을 따라갈 것입니다. 고맙습니다 ! – Raven21