LoginSignup
0
0

More than 3 years have passed since last update.

AmazonConnectのタイムアウトを防ぐため、別スレッドに処理を投げ、レスポンスを返す

Posted at

下記のようにPOSTでやり取りしていた。
flow.jpg

しかし、AmazonConnectのタイムアウトが最大8秒に制限されているため、タイムアウトしてしまう。
そこで、下記のように、8秒以上かかってしまう処理をスレッドに分けることにした。
スレッドの実行が開始できた時点で、呼び出し元にはOKを返却する。

hoge.java

@Service
public class hogeService {
    @Autowired
    private ApplicationContext applicationContext;

    public hogeReturnDto hogeService(hogeRequestDto request){
        // 長い時間のかかる処理でスレッドを作成、実行する
        hogeThread thread = new hogeThread(request);
        applicationContext.getAutowireCapableBeanFactory().autowireBean(thread);
        ExecutorService executorService = Executors.newSingleThreadExecutor();
        executorService.execute(thread);

        // 呼び出し元にはOKを返却
        ResponseDto responseDto = new ResponseDto();
        responseDto.setCode(200);
        responseDto.setMessage("OK");
        return responseDto;
        return;
    }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0