現在、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@@@ |
トランザクション リレーの再試行 | 注: このジョブは非推奨になっており、収益化には影響しません。 | 毎日午前 4 時 30 分 | MINT.RETRY_TX_RELAY@@@ |
トランザクション クレンザー | 注: このジョブは非推奨になっており、収益化には影響しません。 | 毎日午前 5 時 30 分 | MINT.TX_CLEANSER@@@ |
デベロッパー残高監査 | デベロッパー アカウントの残高を監査する現在の使用量と前払い残高/後払い利用限度額を監査テーブルにコピーし、デベロッパー アカウントから現在の使用量を差し引いて、使用量残高を 0 に戻します。 | 毎月 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@@@ |
1 時間あたりの料金 | 1 四半期ごとにすべてのトランザクションの合計を計算します。 | 毎時 1 分 1 分 | MINT.CHARGE_HOURLY@@@ |
通知構成を更新 | すべての通知条件をインデックスに再登録します。 | 5 分ごと | MINT.REFRESH_NOTIFICATION_CONFIG@@@ |
メール通知を送信する | 累積のメール通知を送信する | 1 時間ごと | MINT.EMAIL_NOTIFICATION@@@ |
更新の上限 | 注: このジョブは非推奨になっており、収益化には影響しません。 | 該当なし(実行しない) | MINT.REFRESH_LIMIT@@@ |
上記のジョブに加えて、次の表に示すように、イベント通知を使用して有効にできるジョブがあります。詳しくは、通知を設定するをご覧ください。
Job | 説明 | スケジュール | トリガー |
---|---|---|---|
新しいパッケージの通知 | 新しい API パッケージが利用可能になったことをすべてのデベロッパーに通知します。 |
1 回だけ実行します。ジョブが有効になった日の午後 9 時に実行されます。 注: |
MINT.NEW_PACKAGE_NOTIFY@@@ |
新しいアドホック通知 | 新しい API プロダクトが特定の地域市場で入手可能になったことを、すべてのデベロッパーに通知します。 |
1 回だけ実行します。ジョブが有効になった日の午後 9 時に実行されます。 注: |
MINT.ADHOC_NOTIFY@@@ |
新プロダクトの通知 | 新しい API プロダクトが利用可能になったことをすべてのデベロッパーに通知します。 |
1 回だけ実行します。ジョブが有効になった日の午後 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 を使用して収益化ジョブ スケジュールを管理する方法について説明します。
- トリガーの構成
- cron 式の作成
- API を使用してスケジュールされたジョブを表示する
- API を使用したスケジュールされたジョブの更新
- API を使用してスケジュールされたジョブを無効化または再有効化する
このセクションで説明する API の詳細については、API リファレンスのスケジュールされたジョブをご覧ください。
トリガーの設定
スケジューラは、トリガーを使用してジョブを実行します。スケジュールされたジョブは、関連するトリガーの実行時に実行されます。トリガーのプロパティはジョブの実行を構成します。これらのプロパティの値を設定することで、ジョブが実行されるタイミングや頻度など、ジョブ実行の特性を制御できます。
最も一般的なタイプのトリガーは、cron トリガーと単純なトリガーの 2 つです。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 | 、- * ?/ 左西 |
m |
月 | ○ | 1 ~ 12 日または 1 月~ 12 月 | , - * / |
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 は毎月第 1 月曜日、4#5 は第 5 水曜日です。 |
cron 式の例を以下に示します(記載されている時間はすべて UTC です)。
CRON 式 | 実行スケジュール |
---|---|
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 | 毎月第 3 金曜日午前 10 時 15 分です |
API を使用したスケジュールされたジョブの表示
現在スケジュールされているすべてのジョブを表示するには、GET リクエストを /triggers?orgid={org_name}
に発行します。
例:
$ 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
と有効なプロパティの値のみを変更できます。他の変更は無視されます。cron 式の値を指定しないジョブの場合、startTime
や priority
などの他のプロパティを変更できます。
スケジュールされたジョブを更新するには、/triggers/{trig_id}
に PUT リクエストを発行します。ここで、{trig_id}
は、スケジュールされたジョブの概要で説明されているジョブトリガーの ID です。更新を行うときは、更新された設定とトリガーの ID をリクエスト本文で指定する必要があります。
たとえば、次のリクエストでは、毎日午前 5 時(UTC)に実行される新しいデベロッパー料金プランの更新ジョブの cron 式を更新します。
$ 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 データを収益化と同期させるをご覧ください。