@Async
Yミリ秒/秒ごとにX回実行されるメソッドを実装する最良の方法は何ですか。
私は、Spring の @Async アノテーションを使用して非同期的に実行している、1 秒あたり 14 通の E メールのみを送信するように Amazon SES によって設定された要件を持っていますが、私が知っているように、最大プールと最大キューサイズしか設定できず、レートは設定できません。
ここに私が持っているものがあります:
@Bean(name = "emailSenderThreadPoolTaskExecutor")
public Executor emailSenderThreadPoolTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(14); // send 14 at once
executor.setMaxPoolSize(14);
executor.setThreadNamePrefix("EmailThreadPool-");
executor.initialize();
return executor;
}
その後
@Async(value = "emailSenderThreadPoolTaskExecutor")
public void sendEmail(String emailTo, String subject) {
//...
}