Apigee Edge 문서를 보고 있습니다.
Apigee X 문서로 이동하세요. info
예약된 작업 개요
수익 창출은 작업 스케줄러와 지정된 시간에 실행되도록 미리 예약된 작업 집합을 제공합니다.
아래 표에는 수익 창출에서 제공하는 사전 예약된 작업과 실행이 예약된 시간이 나와 있습니다 (모든 시간은 UTC 기준). 각 작업의 트리거도 나열됩니다.
| 작업 | 설명 | 일정(UTC) | 트리거 |
|---|---|---|---|
| 월별 개발자 세금 비율 | 각 개발자의 세금 엔진에서 세율을 가져오고 수정된 세율로 개발자 항목을 업데이트합니다. | 매월 1일 오전 5시 45분 | MINT.MONTHLY_DEV_TAXRATE@@@ |
| 구독 갱신 | 활성 요금제의 반복 요금 또는 당일에 시작하는 향후 요금제의 새 요금을 적용합니다. | 매일 자정 5초 | MINT.RENEW_SUBSCRIPTIONS@@@ |
| XeFeed Updater | 지원되는 각 통화의 미국 달러 환율을 가져옵니다. | 매일 자정 1초 후 | MINT.XEFEED@@@ |
| 개발자 요금제 갱신 | 요금제의 갱신일을 롤오버하고 조기 종료 수수료를 계산합니다. | 매일 오전 2시 20분 | MINT.RENEW_DEV_RATEPLAN@@@ |
| 트랜잭션 릴레이 재시도 | 참고: 이 작업은 지원 중단되었으며 수익 창출에 영향을 미치지 않습니다. | 매일 오전 4시 30분 | MINT.RETRY_TX_RELAY@@@ |
| 거래 클렌저 | 참고: 이 작업은 지원 중단되었으며 수익 창출에 영향을 미치지 않습니다. | 매일 오전 5시 30분 | MINT.TX_CLEANSER@@@ |
| 개발자 잔액 감사 | 개발자 계정 잔액을 감사합니다. 현재 사용량과 선불 잔액/후불 크레딧 한도를 감사 테이블에 복사한 다음 개발자 계정에서 현재 사용량을 차감하고 사용량 잔액을 0으로 반환합니다. | 매월 1일 자정 후 5초 | MINT.DEVELOPER_BALANCE_AUDIT@@@ |
| 월별 결제 문서 | 결제 문서를 생성합니다. 참고: Apigee Edge 수익 창출에서 결제 문서 생성이 더 이상 지원되지 않습니다. 지원 중단을 참고하세요. |
매월 11일 자정 1분 후 | MINT.MONTLY_BILLING_DOCS@@@ |
| 개발자 요금제 카운터 | 참고: 이 작업은 지원 중단되었으며 수익 창출에 영향을 미치지 않습니다. | 매일 자정 3초 후 | MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@ |
| 일일 요금 | 모든 시간별 거래 합계를 다시 계산하고 이를 사용하여 전날의 일별 합계를 계산합니다. | 매일 오전 1시 20분 | MINT.CHARGE_DAILY@@@ |
| 시간별 요금 | 15분마다 모든 거래 총계를 계산합니다. | 15분마다 1분 | MINT.CHARGE_HOURLY@@@ |
| 알림 구성 새로고침 | 모든 알림 조건을 다시 색인합니다. | 5분마다 | MINT.REFRESH_NOTIFICATION_CONFIG@@@ |
| 이메일 알림 보내기 | 누적된 이메일 알림을 전송합니다. | 1시간마다 | MINT.EMAIL_NOTIFICATION@@@ |
| 새로고침 한도 | 참고: 이 작업은 지원 중단되었으며 수익 창출에 영향을 미치지 않습니다. | 해당 사항 없음 (실행되지 않음) | MINT.REFRESH_LIMIT@@@ |
위의 작업 외에도 다음 표에 나열된 대로 이벤트 알림을 통해 사용 설정할 수 있는 작업이 있습니다. 자세한 내용은 알림 설정하기를 참고하세요.
| 작업 | 설명 | 일정 | 트리거 |
|---|---|---|---|
| 새 패키지 알림 | 새 API 패키지를 사용할 수 있다는 알림을 모든 개발자에게 전송합니다. |
작업이 사용 설정된 날 오후 9시에 한 번 실행됩니다.
참고: 작업을 여러 번 실행하도록 하는 |
MINT.NEW_PACKAGE_NOTIFY@@@ |
| 새 임시 알림 | 특정 지리적 시장에서 새 API 제품을 사용할 수 있다는 알림을 모든 개발자에게 전송합니다. |
작업이 사용 설정된 날 오후 9시에 한 번 실행됩니다.
참고: 작업을 여러 번 실행하도록 하는 |
MINT.ADHOC_NOTIFY@@@ |
| 신제품 알림 | 새 API 제품을 사용할 수 있다는 알림을 모든 개발자에게 전송합니다. |
작업이 사용 설정된 날 오후 9시에 한 번 실행됩니다.
참고: 작업을 여러 번 실행하도록 하는 |
MINT.NEW_PRODUCT_NOTIFY@@@ |
| 새 요금제 알림 |
영향을 받는 개발자에게 새 요금제를 사용할 수 있다는 알림을 보냅니다. 상위 요금제를 구독하는 모든 개발자에게 새 요금제가 활성화되었다는 알림이 전송됩니다. 또한 다음 사항도 적용됩니다.
|
새 요금제의 시작 날짜인 오전 4시 30분에 실행됩니다. | MINT.NEW_RATEPLAN_NOTIFY@@@ |
| 새 Tnc | 영향을 받는 개발자에게 신규 또는 개정된 이용약관이 게시되었으며 개발자가 아직 이를 수락하지 않았다는 알림을 전송합니다. | 새로운 또는 수정된 이용약관의 시작일 30일, 7일, 1일 전 오후 9시에 실행됩니다. | MINT.TNC_ACCEPTANCE_NOTIFY@@@ |
| 만료되는 요금제 | 요금제가 만료된다는 사전 경고를 제공하기 위해 영향을 받는 개발자에게 알림을 전송합니다. | 요금제 만료 30일, 7일, 1일 전 오후 9시에 실행됩니다. | MINT.EXPIRING_RATE_PLAN_NOTIFY@@@ |
API를 사용하여 수익 창출 작업 일정 관리
다음 섹션에서는 API를 사용하여 수익 창출 작업 일정을 관리하는 방법을 설명합니다.
이 섹션에 설명된 API에 관한 자세한 내용은 API 참조의 예약된 작업을 참고하세요.
트리거 구성
스케줄러는 트리거를 사용하여 작업을 실행합니다. 예약된 작업은 연결된 트리거가 실행될 때 실행됩니다. 트리거의 속성은 작업 실행을 구성하며 이러한 속성의 값을 설정하여 작업이 실행되는 시점과 빈도와 같은 작업 실행의 특성을 제어할 수 있습니다.
가장 일반적인 두 가지 트리거 유형은 cron 트리거와 단순 트리거입니다. cron 트리거에는 실행 일정을 지정하는 cronExpression 속성이 있습니다. 단순 트리거에는 cronExpression 속성이 없습니다. 트리거가 적용되는 시점을 나타내는 startTime와 선택적으로 endTime를 지정합니다.
트리거 속성은 다음과 같습니다 (나열된 모든 시간은 UTC 기준).
| 속성 | 설명 |
|---|---|
cronExpression |
트리거의 실행 일정을 만드는 크론 표현식입니다. 예를 들어 '매주 월요일부터 금요일까지 오전 8시' 또는 '매월 마지막 금요일 오전 1시 30분'입니다. 자세한 내용은 크론 표현식 빌드를 참고하세요.
이 속성을 지정하면 트리거가 cron 트리거로 정의됩니다. 참고: |
enabled |
트리거가 실행되도록 사용 설정되었는지 여부를 나타내는 플래그입니다. 값은 다음 중 하나일 수 있습니다.
|
endTime |
트리거의 일정이 더 이상 적용되지 않는 시간입니다(에포크 형식). |
group |
트리거가 실행될 서버의 유형입니다. 예를 들어 트리거가 관리 서버에서 실행되어야 하는 경우 값은 management-server로 설정해야 합니다. 트리거가 메시지 처리 서버에서 실행되어야 하는 경우 값은 message-processor로 설정해야 합니다. |
id |
트리거의 식별자입니다. |
jobId |
실행할 작업의 식별자입니다. |
name |
트리거를 식별하는 데 사용되는 고유한 이름입니다. |
priority |
여러 트리거가 동시에 실행되도록 예약된 경우 트리거의 상대적 실행 우선순위입니다. 값이 작을수록 우선순위가 높아집니다. 예를 들어 두 트리거가 동시에 실행되도록 예약되어 있고 한 트리거의 우선순위가 1이고 다른 트리거의 우선순위가 2인 경우 우선순위가 1인 트리거가 먼저 실행됩니다.
이 속성은 여러 트리거의 실행 시간이 정확히 동일한 경우에만 적용됩니다. |
startTime |
단순 트리거에만 적용됩니다.
트리거의 일정이 적용되는 시간입니다(에포크 형식). 부가 정보: |
suiteId |
시스템 수준 또는 기본 수준 알림 모음의 알림 부분을 지정하는 플래그입니다. 유효한 값은 DEFAULT 또는 SYSTEM이며, 고유한 스위트 이름을 지정할 수도 있습니다. |
triggerDataMap |
여러 서버가 동시에 동일한 작업을 실행하지 못하도록 하는 잠금 키 custom_lock_key |
크론 표현식 빌드
크론 표현식은 공백으로 구분된 6개 또는 7개의 필드로 구성된 문자열입니다. 이 표현식은 일반적으로 루틴을 실행하는 일정으로 시간 집합을 나타냅니다. 트리거의 cronExpression 속성에 지정된 Cron 표현식은 해당 트리거의 실행을 예약하는 데 사용됩니다.
s
m h dm m dw y
각 항목의 의미는 다음과 같습니다.
| 필드 | 설명 | 필수 | 허용되는 값 | 허용되는 특수문자 |
|---|---|---|---|---|
s |
초 | 예 | 0-59 | , - * / |
m |
분 | 예 | 0-59 | , - * / |
h |
시간 | 예 | 0-23 | , - * / |
dm |
날짜 | 예 | 0-31 | , - * ? / L W |
m |
월 | 예 | 1~12 또는 JAN~DEC | , - * / |
dw |
요일 | 예 | 1~7 또는 SUN~SAT | , - * ? / L # |
y |
연도 | 아니요 | 비어 있거나 1970~2099 | , - * / |
특수문자는 다음과 같이 정의됩니다.
| 특수문자 | 설명 |
|---|---|
| * | 필드 내의 모든 값을 선택하는 데 사용됩니다. 예를 들어 분 필드의 *는 매분을 의미합니다. |
| ? | 문자가 허용되는 두 필드 중 하나에만 문자를 지정하는 데 사용됩니다. 예를 들어 트리거가 특정 날짜 (예: 10일)에 실행되기를 원하지만 요일은 상관없는 경우 날짜 필드에 10을 지정하고 요일 필드에 ?를 지정합니다. 요일 필드에 입력합니다. |
| - | 범위를 지정하는 데 사용됩니다. 예를 들어 시간 필드의 10~12는 10시, 11시, 12시를 의미합니다. |
| , | 추가 값을 지정하는 데 사용됩니다. 예를 들어 요일 필드의 MON,WED,FRI는 월요일, 수요일, 금요일을 의미합니다. |
| / | 증분을 지정하는 데 사용됩니다. 예를 들어 초 필드의 0/15는 초 0, 15, 30, 45를 의미합니다. 초 필드에 5/15를 입력하면 5초, 20초, 35초, 50초를 의미합니다. ' 문자 뒤에 / 를 지정할 수도 있습니다. 이렇게 하면 / 앞에 0이 있는 것과 같습니다. 월의 일 필드에 1/3을 지정하면 월의 첫날부터 3일마다 실행됩니다. |
| L | 허용되는 두 필드에서 각각 다른 의미를 갖습니다. 월의 날짜 필드에 있는 L은 월의 마지막 날을 의미합니다. 즉, 1월의 경우 31일, 윤년이 아닌 해의 2월의 경우 28일입니다. 요일 필드에서 L은 요일의 마지막 날, 즉 7 또는 토요일을 의미합니다. 하지만 다른 값 뒤에 요일 필드에서 사용되면 월의 마지막 xxx일을 의미합니다. 예를 들어 6L은 월의 마지막 금요일을 의미합니다. |
| W | 지정된 날짜와 가장 가까운 평일 (월요일~금요일)을 지정하는 데 사용됩니다. 예를 들어 월의 일 필드에 15W를 지정하면 해당 월의 15일과 가장 가까운 평일을 의미합니다. 따라서 15일이 토요일인 경우 트리거는 14일 금요일에 실행됩니다. 15일이 일요일인 경우 트리거는 16일 월요일에 실행됩니다. 15일이 화요일인 경우 15일 화요일에 실행됩니다. 하지만 날짜를 1W로 지정하고 1일이 토요일인 경우 트리거는 3일 월요일에 실행됩니다. 월의 날짜 경계를 '넘지' 않기 때문입니다. W 문자는 월의 날짜가 범위나 날짜 목록이 아닌 단일 날짜인 경우에만 지정할 수 있습니다. |
| # | 해당 월의 n번째 XXX 요일을 지정하는 데 사용됩니다. 예를 들어 요일 필드의 값 6#3은 해당 월의 세 번째 금요일을 의미합니다 (6 = 금요일, #3 = 해당 월의 세 번째). 기타 예: 2#1 = 해당 월의 첫 번째 월요일, 4#5 = 해당 월의 다섯 번째 수요일 |
다음은 cron 표현식의 몇 가지 예입니다 (나열된 모든 시간은 UTC 기준).
| 크론 표현식 | 실행 일정 |
|---|---|
| 0 0 12 * * ? | 매일 오후 12시(정오) |
| 0 15 10 * * ? 2013 | 2013년 매일 오전 10시 15분 |
| 0 10,44 14 ? 3 수 | 3월 매주 수요일 오후 2시 10분과 오후 2시 44분 |
| 0 15 10 ? * 6L 2013~2015 | 2013년, 2014년, 2015년 매월 마지막 금요일 오전 10시 15분 |
| 0 15 10 ? * 6#3 | 매월 셋째 주 금요일 오전 10시 15분 |
API를 사용하여 예약된 작업 보기
/triggers?orgid={org_name}에 GET 요청을 실행하여 현재 예약된 모든 작업을 확인할 수 있습니다.
예를 들면 다음과 같습니다.
$ curl -H "Accept:application/json" -X GET \ "http://localhost:8080/v1/mint/triggers?orgid={org_name}" \ -u email:password
다음은 응답의 예시입니다.
[ {
"createdDate" : 1457924378176,
"cronExpression" : "3 0 0 * * ?",
"enabled" : true,
"group" : "management-server",
"id" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
"jobId" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server",
"name" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server@@@DEFAULT",
"priority" : "1",
"suiteId" : "DEFAULT",
"triggerDataMap" : {
"custom_lock_key" : "mint.scheduler.__ORG_ID__.resetdeveloperrateplancounter@@@management"
},
"updatedDate" : 1457924378176
}, {
"createdDate" : 1457924378014,
"cronExpression" : "",
"enabled" : true,
"group" : "management-server",
"id" : "MINT.ADHOC_NOTIFY@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
"jobId" : "MINT.ADHOC_NOTIFY@@@management-server",
"name" : "MINT.ADHOC_NOTIFY@@@management-server@@@DEFAULT",
"priority" : "4",
"startTime" : "1372916749000",
"suiteId" : "DEFAULT",
"triggerDataMap" : {
"custom_lock_key" : "mint.scheduler.__ORG_ID__.adhocnotify@@@management"
},
"updatedDate" : 1457924378014
}, {
"createdDate" : 1457924377877,
"cronExpression" : "0 20 1 * * ?",
"enabled" : true,
"group" : "management-server",
"id" : "MINT.CHARGE_DAILY@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
"jobId" : "MINT.CHARGE_DAILY@@@management-server",
"name" : "MINT.CHARGE_DAILY@@@management-server@@@DEFAULT",
"priority" : "1",
"suiteId" : "DEFAULT",
"triggerDataMap" : {
"custom_lock_key" : "mint.scheduler.__ORG_ID__.chargedaily@@@management"
},
"updatedDate" : 1457924377877
},
...
]
/triggers/{trig_id}에 GET 요청을 실행하여 특정 예약 작업을 볼 수도 있습니다. 여기서 {trig_id}는 예약 작업 개요에 설명된 대로 작업 트리거의 식별자입니다. 예를 들면 다음과 같습니다.
$ curl -X GET \ "http://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT" \ -u email:password
다음은 응답의 예시입니다.
{
"createdDate" : 1457924377925,
"cronExpression" : "0 20 2 * * ?",
"enabled" : true,
"group" : "management-server",
"id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
"jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server",
"name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT",
"priority" : "1",
"suiteId" : "DEFAULT",
"triggerDataMap" : {
"custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management"
},
"updatedDate" : 1457924377925
}
API를 사용하여 예약된 작업 업데이트
트리거의 속성을 변경하여 예약된 작업을 업데이트할 수 있습니다. 예를 들어 트리거의 실행 일정을 변경해야 할 수 있습니다.
크론 트리거 작업 (즉, 크론 표현식 값을 포함하는 작업)의 경우 cronExpression 및 사용 설정 속성의 값만 변경할 수 있습니다. 다른 변경사항은 무시됩니다. cron 표현식 값을 지정하지 않는 작업의 경우 startTime 또는 priority과 같은 다른 속성을 변경할 수 있습니다.
예약된 작업을 업데이트하려면 /triggers/{trig_id}에 PUT 요청을 실행합니다. 여기서 {trig_id}은 예약된 작업 개요에 설명된 대로 작업 트리거의 식별자입니다. 업데이트할 때는 요청 본문에 업데이트된 설정과 트리거 ID를 지정해야 합니다.
예를 들어 다음 요청은 매일 오전 5시(UTC)에 실행되도록 신규 개발자 요금제 갱신 작업의 크론 표현식을 업데이트합니다.
$ curl -H "Content-Type: application/json" -X PUT -d \
'{
"cronExpression" : "0 0 5 * * ?",
"enabled" : true,
"group" : "management-server",
"id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
"jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server",
"name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT",
"priority" : "1",
"suiteId" : "DEFAULT",
"triggerDataMap" : {
"custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management"
},
}' \
https://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT
\
-u email:password
API를 사용하여 예약된 작업 사용 중지 및 다시 사용 설정
예약된 작업을 사용 중지하려면 트리거의 enabled 속성 값을 false로 설정합니다. 예를 들면 다음과 같습니다.
$ curl -H "Content-Type: application/json" -X PUT -d \
'{
"cronExpression" : "0 0 5 * * ?",
"enabled" : false,
"group" : "management-server",
"id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
"jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server",
"name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT",
"priority" : "1",
"suiteId" : "DEFAULT",
"triggerDataMap" : {
"custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management"
},
}' \
https://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT
\
-u email:password
사용 중지된 작업을 다시 사용 설정하려면 트리거의 enabled 속성 값을 true로 설정합니다.
다음 단계
조직과 Edge API 서비스를 사용하여 만든 개발자, 애플리케이션, 제품을 수익 창출과 주기적으로 다시 동기화하는 것이 좋습니다. 수익 창출과 Apigee Edge 데이터 동기화에서 방법을 알아보세요.