Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動します。 情報
スケジュールされたジョブの概要
Monetization には、ジョブ スケジューラと所定の時間に実行されるジョブが用意されています。
次の表に、収益化によって提供される事前スケジュール設定されたジョブと、実行がスケジュール設定されている時間を示します(記載されている時間はすべて UTC です)。各ジョブのトリガーも一覧表示されます。
| ジョブ | 説明 | スケジュール(UTC) | トリガー |
|---|---|---|---|
| デベロッパーの月額税率 | デベロッパーごとに税エンジンから税率を取得し、改訂された税率でデベロッパー エンティティを更新します。 | 毎月 1 日の午前 5 時 45 分 | MINT.MONTHLY_DEV_TAXRATE@@@ |
| サブスクリプションを更新する | 有効な料金プランの定期的な料金、または当日開始の将来の料金プランの新しい料金を適用します。 | 毎日午前 0 時 5 秒 | MINT.RENEW_SUBSCRIPTIONS@@@ |
| XeFeed アップデータ | サポートされている各通貨の米ドルでの為替レートを取得します。 | 毎日午前 0 時 1 秒 | MINT.XEFEED@@@ |
| デベロッパー料金プランを更新する | レートプランの更新日をロールオーバーし、早期解約料を計算します。 | 毎日午前 2 時 20 分 | MINT.RENEW_DEV_RATEPLAN@@@ |
| Retry Transaction Relay | 注: このジョブは非推奨となっており、収益化には影響しません。 | 毎日午前 4 時 30 分 | MINT.RETRY_TX_RELAY@@@ |
| トランザクション クレンザー | 注: このジョブは非推奨となっており、収益化には影響しません。 | 毎日午前 5 時 30 分 | MINT.TX_CLEANSER@@@ |
| デベロッパー残高の監査 | デベロッパー アカウントの残高を監査します。現在の使用量と前払い残高/後払い利用限度額を監査テーブルにコピーし、現在の使用量をデベロッパー アカウントから差し引いて、使用量残高をゼロに戻します。 | 毎月 1 日の午前 0 時 5 秒 | MINT.DEVELOPER_BALANCE_AUDIT@@@ |
| 月単位の請求書 | 請求関連ドキュメントを生成します。 注: Apigee では、Apigee Edge Monetization の請求関連ドキュメントの生成のサポートを終了しました。廃止をご覧ください。 |
毎月 11 日の午前 0 時 1 分 | MINT.MONTLY_BILLING_DOCS@@@ |
| デベロッパー料金プラン カウンタ | 注: このジョブは非推奨となっており、収益化には影響しません。 | 毎日午前 0 時 3 秒 | MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@ |
| 1 日あたりの料金 | 1 時間ごとのトランザクションの合計をすべて再計算し、それを使用して前日の 1 日あたりの合計を計算します。 | 毎日午前 1 時 20 分 | MINT.CHARGE_DAILY@@@ |
| 時間単位の料金 | 15 分ごとのすべてのトランザクションの合計を計算します。 | 15 分ごとに 1 分経過後 | MINT.CHARGE_HOURLY@@@ |
| 通知構成を更新する | すべての通知条件のインデックスを再作成します。 | 5 分毎 | MINT.REFRESH_NOTIFICATION_CONFIG@@@ |
| メール通知を送信する | 蓄積されたメール通知を送信します | 1 時間ごと | MINT.EMAIL_NOTIFICATION@@@ |
| 更新上限 | 注: このジョブは非推奨となっており、収益化には影響しません。 | 該当なし(実行されない) | MINT.REFRESH_LIMIT@@@ |
上記のジョブに加えて、次の表に示すように、イベント通知を介して有効にできるジョブもあります。詳しくは、通知を設定するをご覧ください。
| ジョブ | 説明 | スケジュール | トリガー |
|---|---|---|---|
| New Package Notification | 新しい API パッケージが利用可能になったことをすべてのデベロッパーに通知します。 |
ジョブが有効になった日の午後 9 時に 1 回実行されます。 注: ジョブが複数回実行される |
MINT.NEW_PACKAGE_NOTIFY@@@ |
| 新しいアドホック通知 | 特定の地域市場で新しい API プロダクトが利用可能になったことをすべてのデベロッパーに通知します。 |
ジョブが有効になった日の午後 9 時に 1 回実行されます。 注: ジョブが複数回実行される |
MINT.ADHOC_NOTIFY@@@ |
| 新製品に関する通知 | 新しい API プロダクトが利用可能になったことをすべてのデベロッパーに通知します。 |
ジョブが有効になった日の午後 9 時に 1 回実行されます。 注: ジョブが複数回実行される |
MINT.NEW_PRODUCT_NOTIFY@@@ |
| 新しい料金プランの通知 |
新しいレートプランが利用可能になったことを、影響を受けるデベロッパーに通知します。親料金プランに登録しているすべてのデベロッパーに、新しい料金プランが有効になったことが通知されます。 次の特長があります。
|
新しい料金プランの開始日の午前 4 時 30 分に実行されます。 | MINT.NEW_RATEPLAN_NOTIFY@@@ |
| New Tnc | 新しい利用規約または改訂された利用規約が公開されたこと(およびデベロッパーがまだ同意していないこと)を、影響を受けるデベロッパーに通知します。 | 新しい利用規約または改訂された利用規約の開始日の 30 日前、7 日前、1 日前の午後 9 時に実行されます。 | MINT.TNC_ACCEPTANCE_NOTIFY@@@ |
| 料金プランの有効期限が切れる | 影響を受けるデベロッパーに通知を送信し、レートプランの有効期限が切れることを事前に警告します。 | 料金プランの有効期限の 30 日前、7 日前、1 日前の午後 9 時に実行されます。 | MINT.EXPIRING_RATE_PLAN_NOTIFY@@@ |
API を使用して収益化ジョブのスケジュールを管理する
以降のセクションでは、API を使用して収益化ジョブのスケジュールを管理する方法について説明します。
- トリガーを構成する
- cron 式の作成
- API を使用してスケジュール済みジョブを表示する
- API を使用してスケジュール済みジョブを更新する
- API を使用してスケジュール設定されたジョブを無効にして再度有効にする
このセクションで説明する API の詳細については、API リファレンスのスケジュール設定されたジョブをご覧ください。
トリガーの設定
スケジューラは、トリガーを使用してジョブを実行します。スケジュール設定されたジョブは、関連付けられたトリガーが実行されると実行されます。トリガーのプロパティはジョブの実行を構成します。これらのプロパティの値を設定することで、ジョブの実行時期や頻度など、ジョブの実行の特性を制御できます。
最も一般的なトリガーは、cron トリガーとシンプルなトリガーです。cron トリガーには、実行スケジュールを指定する cronExpression プロパティがあります。単純なトリガーには cronExpression プロパティはありません。startTime を指定してトリガーが有効になるタイミングを示し、必要に応じて endTime を指定します。
トリガーのプロパティは次のとおりです(記載されている時刻はすべて UTC です)。
| プロパティ | 説明 |
|---|---|
cronExpression |
トリガーの実行スケジュールを作成する cron 式(「毎週月曜日から金曜日の午前 8 時」や「毎月最終金曜日の午前 1 時 30 分」など)。詳しくは、cron 式の作成をご覧ください。 このプロパティを指定すると、トリガーが cron トリガーとして定義されます。 注: |
enabled |
トリガーが実行可能かどうかを示すフラグ。値は次のいずれかになります。
|
endTime |
トリガーのスケジュールが有効でなくなるエポック形式の時間。 |
group |
トリガーが実行されるサーバーのタイプ。たとえば、トリガーが管理サーバーで実行される場合、値は management-server に設定する必要があります。トリガーがメッセージ処理サーバーで実行される場合は、値を message-processor に設定する必要があります。 |
id |
トリガーの識別。 |
jobId |
実行するジョブの識別。 |
name |
トリガーの識別に使用される一意の名前。 |
priority |
複数のトリガーが同時に実行されるようにスケジュールされている場合、トリガーの相対実行優先度。値が小さいほど優先度が高くなります。たとえば、2 つのトリガーが同時に実行されるようにスケジュールされていて、一方のトリガーの優先度が 1 で、もう一方のトリガーの優先度が 2 の場合、優先度 1 のトリガーが最初に実行されます。 このプロパティは、複数のトリガーの実行時間がまったく同じ場合にのみ適用されます。 |
startTime |
シンプルなトリガーにのみ適用されます。 トリガーのスケジュールが有効になるエポック形式の時刻。 注: |
suiteId |
システムレベルまたはデフォルト レベルの通知スイートの通知部分であるかどうかを指定するフラグ。有効な値は DEFAULT または SYSTEM です。独自のユニークなスイート名を指定することもできます。 |
triggerDataMap |
複数のサーバーが同じジョブを同時に実行しないようにするロックキー custom_lock_key。 |
cron 式の作成
cron 式は、空白文字で区切られた 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 | , - * / |
特殊文字は次のように定義されます。
| 特殊文字 | 説明 |
|---|---|
| * | フィールド内のすべての値を選択するために使用されます。たとえば、分フィールドの * は毎分を意味します。 |
| ? | 文字が許可されている 2 つのフィールドのうち、一方のフィールドで何かを指定するために使用されます。たとえば、トリガーを月の特定の日(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 | 許可されている 2 つのフィールドでは、それぞれ意味が異なります。月の日のフィールドの L は、月の最終日を意味します。つまり、1 月の場合は 31 日、うるう年以外の 2 月の場合は 28 日です。曜日のフィールドで L は、週の最終日(7 または SAT)を意味します。ただし、曜日のフィールドで別の値の後に使用すると、月の最終 xxx 日を意味します。たとえば、6L は月の最終金曜日を意味します。 |
| W | 指定された日に最も近い平日(月曜日から金曜日)を指定するために使用されます。たとえば、日のフィールドに 15W と指定すると、その月の 15 日に最も近い平日を意味します。たとえば、15 日が土曜日の場合、トリガーは 14 日の金曜日に実行されます。15 日が日曜日の場合、トリガーは 16 日の月曜日に実行されます。15 日が火曜日の場合は、15 日の火曜日に実行されます。ただし、日付に 1W を指定し、1 日が土曜日の場合、トリガーは 3 日の月曜日に実行されます。これは、月の境界を越えて「ジャンプ」しないためです。W 文字は、月の日が 1 日の場合にのみ指定できます。範囲や日のリストでは指定できません。 |
| # | 月の n 番目の XXX 日を指定するために使用されます。たとえば、曜日のフィールドの値が 6#3 の場合、月の第 3 金曜日(6 = 金曜日、#3 = 月の第 3 金曜日)を意味します。その他の例: 2#1 = 月の最初の月曜日、4#5 = 月の 5 番目の水曜日。 |
cron 式の例をいくつか示します(記載されている時刻はすべて UTC です)。
| CRON 式 | 実行スケジュール |
|---|---|
| 0 0 12 * * ? | 毎日午後 12 時(正午)。 |
| 0 15 10 * * ? 2013 | 2013 年の毎日午前 10 時 15 分。 |
| 0 10,44 14 ? 3 WED | 3 月の毎週水曜日の午後 2 時 10 分と午後 2 時 44 分。 |
| 0 15 10 ? * 6L 2013-2015 | 2013 年、2014 年、2015 年の毎月最終金曜日の午前 10 時 15 分。 |
| 0 15 10 ? * 6#3 | 毎月第 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} はジョブトリガーの 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 を使用してスケジュールされたジョブを更新する
トリガーのプロパティを変更することで、スケジュール設定されたジョブを更新できます。たとえば、トリガーの実行スケジュールを変更する必要がある場合があります。
cron トリガー ジョブ(cron 式の値を含むジョブ)の場合、cronExpression プロパティと enabled プロパティの値のみを変更できます。その他の変更は無視されます。cron 式の値を指定しないジョブの場合は、startTime や priority などの他のプロパティを変更できます。
スケジュール設定されたジョブを更新するには、/triggers/{trig_id} に PUT リクエストを発行します。ここで、{trig_id} はジョブトリガーの ID です(スケジュール設定されたジョブの概要を参照)。更新を行う場合は、リクエストの本文で、更新された設定とトリガーの ID を指定する必要があります。
たとえば、次のリクエストは、New Developer Rate Plan Renewal ジョブの cron 式を更新して、毎日午前 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 Services を使用して作成したデベロッパー、アプリケーション、プロダクトを収益化と定期的に再同期することをおすすめします。詳しくは、Apigee Edge データを収益化と同期させるをご覧ください。