비동기 설명 추가
This commit is contained in:
+87
@@ -0,0 +1,87 @@
|
|||||||
|
# 비동기 사용 방법
|
||||||
|
## 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호출
|
||||||
|
|
||||||
Reference in New Issue
Block a user