Files
2025-01-06 10:41:00 +09:00

2.4 KiB

비동기 사용 방법

1. 실제 비동기 응답을 위한 큐 관리 등록

큐 이름을 입력하고 Handler 스크립트 작성

2. 비동기 처리를 위한 응답 관리 등록

  • 요청 스크립트 큐에 메시지를 추가하도록 처리
  • 응답 API응답 메시지 등록

3. 2에서 등록한 응답관리 API를 호출

예제

1. 큐관리

  1. 실제 응답을 받을 API를 응답관리에 /ibk_async_response로 등록
  2. Handler Script 에 ibk 비동기 처리 스크립트 등록

Handler Script

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 등록

요청 스크립트


tmScheduleToQueue('ibk', request.body, 5);
//QUEUE 에 body 내용을 넣고, 아래 응답을 바로 리턴

기본 응답

{
"result": true
}

3. 요청관리에 비동기테스트 컬렉션-> 비동기 API /ibk/async_test 등록된 API호출