현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동 정보
예약된 작업 개요
수익 창출은 지정된 시간에 실행되도록 미리 예약된 작업 스케줄러와 일련의 작업을 제공합니다.
아래 표에는 수익 창출에서 제공하는 사전 예약된 작업과 이러한 작업 실행이 예약된 시간이 나와 있습니다 (나열된 모든 시간은 UTC 기준). 각 작업의 트리거도 나열됩니다.
작업 | 설명 | 일정(UTC) | 트리거 |
---|---|---|---|
월간 개발자 세율 | 각 개발자의 세금 엔진에서 세율을 가져오고 개발자 법인을 수정된 세율로 업데이트합니다. | 매월 1일 오전 5시 45분 | MINT.MONTHLY_DEV_TAXRATE@@@ |
구독 갱신 | 활성 요금제에 반복 수수료를 적용하거나 현재 날짜에 시작되는 향후 요금제에 대한 새 수수료를 적용합니다. | 매일 자정 이후 5초 | MINT.RENEW_SUBSCRIPTIONS@@@ |
XeFeed 업데이터 | 지원되는 각 통화의 환율을 미국 달러로 확인합니다. | 매일 자정 이후 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는 더 이상 Apigee Edge 수익 창출에서 결제 문서를 생성할 수 없습니다. 중단을 참조하세요. |
매월 11일 자정 이후 1분 | MINT.MONTLY_BILLING_DOCS@@@ |
개발자 요금제 카운터 | 참고: 이 작업은 지원 중단되었으며 수익 창출에 영향을 미치지 않습니다. | 매일 자정 이후 3초 | MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@ |
일일 청구 | 모든 시간별 트랜잭션 총계를 다시 계산하고 이를 사용하여 전날의 일일 총계를 계산합니다. | 매일 오전 1시 20분 | MINT.CHARGE_DAILY@@@ |
시간당 요금 | 매 분기의 모든 트랜잭션 합계를 계산합니다. | 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 참조의 예약된 작업을 참조하세요.
트리거 구성
스케줄러는 트리거를 사용하여 작업을 실행합니다. 예약된 작업은 연결된 트리거가 실행될 때 실행됩니다. 트리거의 속성은 작업 실행을 구성하며 이러한 속성의 값을 설정하여 작업 실행 특성(예: 작업 실행 시점 및 빈도)을 제어할 수 있습니다.
가장 일반적인 트리거의 두 가지 유형은 크론 트리거와 단순 트리거입니다. 크론 트리거에는 실행 일정을 지정하는 cronExpression
속성이 있습니다. 단순 트리거에는 cronExpression
속성이 없습니다. startTime
를 지정하여 트리거가 적용되는 시점을 나타내고 선택적으로 endTime
를 지정할 수 있습니다.
트리거 속성은 다음과 같습니다 (나열된 모든 시간은 UTC 기준).
속성 | 설명 |
---|---|
cronExpression |
트리거의 실행 일정을 만드는 크론 표현식입니다(예: '매주 월요일부터 금요일까지 오전 8시' 또는 '매월 마지막 금요일 오전 1시 30분'). 자세한 내용은 크론 표현식 빌드를 참조하세요.
이 속성을 지정하면 트리거가 크론 트리거로 정의됩니다. 참고: |
enabled |
트리거가 실행되도록 사용 설정되어 있는지 여부를 나타내는 플래그입니다. 값은 다음 중 하나일 수 있습니다.
|
endTime |
트리거 일정이 더 이상 적용되지 않는 에포크 형식의 시간입니다. |
group |
트리거를 실행할 서버의 유형입니다. 예를 들어 트리거가 관리 서버에서 실행되어야 하는 경우 값을 management-server 로 설정해야 합니다. 트리거가 메시지 처리 서버에서 실행되어야 하는 경우 값을 message-processor 로 설정해야 합니다. |
id |
트리거의 식별입니다. |
jobId |
실행할 작업의 ID입니다. |
name |
트리거를 식별하는 데 사용되는 고유한 이름입니다. |
priority |
여러 트리거가 동시에 실행되도록 예약된 경우 트리거의 상대적 실행 우선순위입니다. 값이 낮을수록 우선순위가 높습니다. 예를 들어 두 트리거가 동시에 실행되도록 예약되었고 한 트리거의 우선순위가 1이고 다른 트리거의 우선순위가 2인 경우 우선순위가 1인 트리거가 먼저 실행됩니다.
이 속성은 여러 트리거의 실행 시간이 정확히 동일한 경우에만 적용됩니다. |
startTime |
간단한 트리거에만 적용됩니다.
트리거 일정이 적용되는 에포크 형식의 시간입니다. 참고: |
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 데이터와 수익 창출 동기화에서 방법을 알아보세요.