수익 창출 작업 예약

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

예약된 작업 개요

수익 창출은 지정된 시간에 실행되도록 미리 예약된 작업 스케줄러와 일련의 작업을 제공합니다.

아래 표에는 수익 창출에서 제공하는 사전 예약된 작업과 이러한 작업 실행이 예약된 시간이 나와 있습니다 (나열된 모든 시간은 UTC 기준). 각 작업의 트리거도 나열됩니다.

작업 설명 일정(UTC) 트리거
월간 개발자 세율 각 개발자의 세금 엔진에서 세율을 가져오고 개발자 법인을 수정된 세율로 업데이트합니다. 매월 1일 오전 5시 45분 MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
구독 갱신 활성 요금제에 반복 수수료를 적용하거나 현재 날짜에 시작되는 향후 요금제에 대한 새 수수료를 적용합니다. 매일 자정 이후 5초 MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
XeFeed 업데이터 지원되는 각 통화의 환율을 미국 달러로 확인합니다. 매일 자정 이후 1초 MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
개발자 요금제 갱신 요금제에 대한 갱신일을 이월하고 조기 해지 수수료를 계산합니다. 매일 오전 2시 20분 MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
트랜잭션 릴레이 재시도 참고: 이 작업은 지원 중단되었으며 수익 창출에 영향을 미치지 않습니다. 매일 오전 4시 30분 MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
트랜잭션 클리너 참고: 이 작업은 지원 중단되었으며 수익 창출에 영향을 미치지 않습니다. 매일 오전 5시 30분 MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
개발자 잔액 감사 개발자 계정 잔액을 감사합니다. 현재 사용량 및 선불 잔액/후불 크레딧 한도를 감사 테이블에 복사한 후 개발자 계정에서 현재 사용량을 차감하고 사용량 잔액을 0으로 반환합니다. 매월 1일 자정으로부터 5초 MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
월별 결제 문서 결제 문서를 생성합니다.

참고: Apigee는 더 이상 Apigee Edge 수익 창출에서 결제 문서를 생성할 수 없습니다. 중단을 참조하세요.

매월 11일 자정 이후 1분 MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
개발자 요금제 카운터 참고: 이 작업은 지원 중단되었으며 수익 창출에 영향을 미치지 않습니다. 매일 자정 이후 3초 MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
일일 청구 모든 시간별 트랜잭션 총계를 다시 계산하고 이를 사용하여 전날의 일일 총계를 계산합니다. 매일 오전 1시 20분 MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
시간당 요금 매 분기의 모든 트랜잭션 합계를 계산합니다. 15분에서 1분 후 MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
알림 구성 새로고침 모든 알림 조건의 색인을 다시 생성합니다. 5분마다 MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
이메일 알림 보내기 누적 이메일 알림 전송 1시간마다 MINT.EMAIL_NOTIFICATION@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
새로고침 제한 참고: 이 작업은 지원 중단되었으며 수익 창출에 영향을 미치지 않습니다. 해당 사항 없음 (실행되지 않음) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

위에 나열된 작업 외에도 다음 표와 같이 이벤트 알림을 통해 사용 설정할 수 있는 작업이 있습니다. 자세한 내용은 알림 설정하기를 참고하세요.

작업 설명 일정 트리거
새 택배 알림 모든 개발자에게 새 API 패키지를 사용할 수 있다는 알림을 전송합니다. 작업이 사용 설정된 당일 오후 9시에 한 번 실행됩니다.

참고: 작업은 여러 번 실행되는 cronExpression의 구성 여부와 관계없이 한 번만 전송됩니다.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
새로운 임시 알림 모든 개발자에게 특정 지리적 시장에서 새로운 API 제품을 사용할 수 있다는 알림을 전송합니다. 작업이 사용 설정된 당일 오후 9시에 한 번 실행됩니다.

참고: 작업은 여러 번 실행되는 cronExpression의 구성 여부와 관계없이 한 번만 전송됩니다.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
신제품 알림 모든 개발자에게 새 API 제품을 사용할 수 있다는 알림을 전송합니다. 작업이 사용 설정된 당일 오후 9시에 한 번 실행됩니다.

참고: 작업은 여러 번 실행되는 cronExpression의 구성 여부와 관계없이 한 번만 전송됩니다.

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
새 요금제 알림

영향을 받는 개발자에게 새로운 요금제를 사용할 수 있다는 알림을 보냅니다. 상위 요금제를 구독하는 모든 개발자에게 새 요금제가 활성화되었다는 알림이 전송됩니다.

추가 정보:

  • 표준 요금제인 경우 모든 개발자에게 알림이 전송됩니다.
  • 개발자 카테고리 요금제인 경우 해당 카테고리에 속한 개발자에게만 알림이 전송됩니다.
  • 개발자 요금제인 경우 해당 개발자에게만 알림이 전송됩니다.
새 요금제의 시작일, 오전 4시 30분에 실행됩니다. MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
새 TNC 영향을 받는 개발자에게 새로운 이용약관 또는 수정된 이용약관이 게시되었으며 개발자가 아직 이에 동의하지 않았다는 알림을 전송합니다. 신규 또는 개정 이용약관 시작일 30일, 7일, 1일 전 오후 9시 실행 MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
만료 예정인 요금제 요금제 만료에 대한 사전 경고를 위해 영향을 받는 개발자에게 알림을 전송합니다. 요금제 만료 30일, 7일, 1일 전 오후 9시에 실행 MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

API를 사용하여 수익 창출 작업 일정 관리

다음 섹션에서는 API를 사용하여 수익 창출 작업 일정을 관리하는 방법을 설명합니다.

이 섹션에 설명된 API에 대한 자세한 내용은 API 참조의 예약된 작업을 참조하세요.

트리거 구성

스케줄러는 트리거를 사용하여 작업을 실행합니다. 예약된 작업은 연결된 트리거가 실행될 때 실행됩니다. 트리거의 속성은 작업 실행을 구성하며 이러한 속성의 값을 설정하여 작업 실행 특성(예: 작업 실행 시점 및 빈도)을 제어할 수 있습니다.

가장 일반적인 트리거의 두 가지 유형은 크론 트리거단순 트리거입니다. 크론 트리거에는 실행 일정을 지정하는 cronExpression 속성이 있습니다. 단순 트리거에는 cronExpression 속성이 없습니다. startTime를 지정하여 트리거가 적용되는 시점을 나타내고 선택적으로 endTime를 지정할 수 있습니다.

트리거 속성은 다음과 같습니다 (나열된 모든 시간은 UTC 기준).

속성 설명
cronExpression 트리거의 실행 일정을 만드는 크론 표현식입니다(예: '매주 월요일부터 금요일까지 오전 8시' 또는 '매월 마지막 금요일 오전 1시 30분'). 자세한 내용은 크론 표현식 빌드를 참조하세요.

이 속성을 지정하면 트리거가 크론 트리거로 정의됩니다.

참고: cronExpressionstartTime/endTime를 모두 지정하면 cronExpression가 우선 적용됩니다.

enabled 트리거가 실행되도록 사용 설정되어 있는지 여부를 나타내는 플래그입니다. 값은 다음 중 하나일 수 있습니다.
  • true: 트리거가 실행되도록 사용 설정되었습니다.
  • false. 트리거가 사용 중지되어 실행되지는 않습니다.
endTime 트리거 일정이 더 이상 적용되지 않는 에포크 형식의 시간입니다.
group 트리거를 실행할 서버의 유형입니다. 예를 들어 트리거가 관리 서버에서 실행되어야 하는 경우 값을 management-server로 설정해야 합니다. 트리거가 메시지 처리 서버에서 실행되어야 하는 경우 값을 message-processor로 설정해야 합니다.
id 트리거의 식별입니다.
jobId 실행할 작업의 ID입니다.
name 트리거를 식별하는 데 사용되는 고유한 이름입니다.
priority 여러 트리거가 동시에 실행되도록 예약된 경우 트리거의 상대적 실행 우선순위입니다. 값이 낮을수록 우선순위가 높습니다. 예를 들어 두 트리거가 동시에 실행되도록 예약되었고 한 트리거의 우선순위가 1이고 다른 트리거의 우선순위가 2인 경우 우선순위가 1인 트리거가 먼저 실행됩니다.

이 속성은 여러 트리거의 실행 시간이 정확히 동일한 경우에만 적용됩니다.

startTime 간단한 트리거에만 적용됩니다.

트리거 일정이 적용되는 에포크 형식의 시간입니다.

참고: cronExpressionstartTime/endTime를 모두 지정하면 cronExpression가 우선 적용됩니다.

suiteId 알림 부분이 시스템 수준 또는 기본 수준 알림 모음의 알림인지 지정하는 플래그입니다. 유효한 값은 DEFAULT 또는 SYSTEM입니다. 또는 고유한 묶음 이름을 직접 지정할 수도 있습니다.
triggerDataMap 여러 서버에서 동시에 같은 작업을 실행하지 못하게 하는 잠금 키 custom_lock_key입니다.

크론 표현식 빌드

크론 표현식은 공백으로 구분된 6개 또는 7개의 필드로 구성된 문자열입니다. 표현식은 일련의 시간을 나타내며 일반적으로 루틴을 실행하는 일정으로 나타냅니다. 트리거의 cronExpression 속성에 지정된 크론 표현식은 해당 트리거의 실행을 예약하는 데 사용됩니다.

크론 표현식의 형식은 s m h dm m dw y입니다.

각 항목의 의미는 다음과 같습니다.

필드 설명 필수 허용되는 값 허용되는 특수문자
s 지원됨 0-59 , - * /
m 지원됨 0-59 , - * /
h 시간 지원됨 0-23 , - * /
dm 날짜 지원됨 0-31 , - * ? / L W
m 지원됨 1~12일 또는 1월 12일 , - * /
dw 요일 지원됨 1~7 또는 SUN-SAT , - * ? / L 번호
y 연도 No 비어 있음 또는 1970-2099 , - * /

특수문자는 다음과 같이 정의됩니다.

특수문자 설명
* 필드 내의 모든 값을 선택하는 데 사용됩니다. 예를 들어 분 필드의 *는 1분마다를 의미합니다.
? 두 필드 중 하나에서는 문자가 허용되지만 다른 필드에는 지정하지 않는 데 사용됩니다. 예를 들어 트리거를 해당 월의 특정 날짜 (예: 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을 지정하면 해당 월의 1일부터 3일마다 실행됩니다.
L 값이 허용되는 두 필드 각각에서 의미가 다릅니다. 날짜 필드의 L은 월의 마지막 날, 즉 1월의 경우 31일, 윤년이 아닌 해의 경우 2월의 28일을 의미합니다. 요일 필드에서 L은 일주일의 마지막 날, 즉 7 또는 SAT를 의미합니다. 하지만 요일 필드에 다른 값 뒤에 사용되면 해당 월의 마지막 xxx일을 의미합니다. 예를 들어 6L은 그달의 마지막 금요일을 의미합니다.
W 지정된 요일에 가장 가까운 요일 (월요일~금요일)을 지정하는 데 사용됩니다. 예를 들어 날짜 필드에 15W를 지정하면 해당 월의 15일에 가장 가까운 평일을 의미합니다. 따라서 15일이 토요일이라면 트리거는 14일 금요일에 실행됩니다. 15일이 일요일이면 트리거는 16일 월요일에 실행됩니다. 15일이 화요일이면 15일 화요일에 실행됩니다. 하지만 월중 날짜에 1W를 지정하고 첫 번째가 토요일인 경우 트리거는 월의 날짜 경계를 넘어 '이동'하지 않으므로 세 번째 월요일에 실행됩니다. W 문자는 월이 날짜 범위 또는 목록이 아닌 하루인 경우에만 지정할 수 있습니다.
# 해당 월의 n번째 XXX일을 지정하는 데 사용됩니다. 예를 들어 요일 필드의 값 6#3은 월의 세 번째 금요일을 의미합니다 (일 6 = 금요일, #3 = 월의 세 번째 금요일). 기타 예: 2#1 = 월의 첫 번째 월요일, 4#5 = 월의 다섯 번째 수요일

다음은 크론 표현식의 몇 가지 예입니다 (나열된 모든 시간은 UTC 기준).

크론 표현식 실행 일정
0 0 12 * * ?는 매일 오후 12시(정오)
0 15 10 * * ?는 2013 2013년 동안 매일 오전 10시 15분
0 10,44 14 ? 수요일 3일 오전 2시 10분부터 3월까지 매주 수요일 오후 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 및 사용 설정된 속성의 값만 변경할 수 있습니다. 다른 변경사항은 무시됩니다. 크론 표현식 값을 지정하지 않는 작업의 경우 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 데이터와 수익 창출 동기화에서 방법을 알아보세요.