# 비동기 사용 방법 ## 1. 실제 비동기 응답을 위한 큐 관리 등록 큐 이름을 입력하고 Handler 스크립트 작성 ## 2. 비동기 처리를 위한 응답 관리 등록 - 요청 스크립트 큐에 메시지를 추가하도록 처리 - 응답 API응답 메시지 등록 ## 3. 2에서 등록한 응답관리 API를 호출 # 예제 * http://testmaster.elink365.net:38080 에 등록된 예제 참고 ## 1. 큐관리 1) 실제 응답을 받을 API를 응답관리에 /ibk_async_response로 등록 2) Handler Script 에 ibk 비동기 처리 스크립트 등록 ### Handler Script ```javascript var URL = Java.type('java.net.URL'); var HttpURLConnection = Java.type('java.net.HttpURLConnection'); var BufferedReader = Java.type('java.io.BufferedReader'); var InputStreamReader = Java.type('java.io.InputStreamReader'); var StringBuilder = Java.type('java.lang.StringBuilder'); try { var url = new URL('http://testmaster.elink365.net:38080/ibk_async_response'); var connection = url.openConnection(); connection.setRequestMethod('POST'); connection.setDoOutput(true); // Write the body var outputStream = connection.getOutputStream(); var body = 'async_result' + message; // /ibk/async_test 가 받은 메시지 바디 outputStream.write(new java.lang.String(body).getBytes('UTF-8')); outputStream.close(); console.log(body); // Read the response var responseCode = connection.getResponseCode(); if (responseCode === 200) { var inputStream = connection.getInputStream(); var reader = new BufferedReader(new InputStreamReader(inputStream)); var builder = new StringBuilder(); var line; while ((line = reader.readLine()) !== null) { builder.append(line); builder.append('\n'); } reader.close(); console.log('POST Response:' + builder.toString()); } else { console.log('HTTP Error! Status:' + responseCode); } } catch (error) { console.log('Error making POST request:' + error); } ``` ## 2. 응답관리 기본 응답 위한 API /ibk/async_test 등록 ### 요청 스크립트 ```javascript tmScheduleToQueue('ibk', request.body, 5); //QUEUE 에 body 내용을 넣고, 아래 응답을 바로 리턴 ``` ### 기본 응답 ```json { "result": true } ``` ## 3. 요청관리에 비동기테스트 컬렉션-> 비동기 API /ibk/async_test 등록된 API호출