Planowanie zadań generowania przychodu

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Przegląd zaplanowanych zadań

Monetyzacja udostępnia harmonogram zadań i zestaw zadań, które są wstępnie zaplanowane do uruchamiania w określonych godzinach.

W tabeli poniżej znajdziesz listę wstępnie zaplanowanych zadań związanych z zarabianiem oraz godziny, w których są one zaplanowane (wszystkie godziny są podane w czasie UTC). Podany jest też wyzwalacz każdego zadania.

Zadanie Opis Harmonogram (UTC) Aktywator
Miesięczna stawka podatku dewelopera Pobiera z systemu podatkowego stawkę podatku dla każdego dewelopera i aktualizuje podmiot dewelopera o zmienioną stawkę podatku. Pierwszego dnia każdego miesiąca o godzinie 5:45. MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Odnów subskrypcję Naliczanie cyklicznych opłat za aktywne abonamenty lub nowych opłat za przyszłe abonamenty, które rozpoczynają się w bieżącym dniu. Codziennie o godzinie 00:00:05 MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
XeFeed Updater Pobiera kurs wymiany na dolary amerykańskie dla każdej obsługiwanej waluty. Codziennie o 00:00:01 MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Odnawianie abonamentu deweloperskiego Przesuwa daty odnowienia abonamentu i oblicza opłaty za wcześniejsze zakończenie umowy. Codziennie o 2:20. MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Ponów przekazywanie transakcji Uwaga: to zadanie zostało wycofane i nie ma wpływu na zarabianie. Codziennie o 4:30 MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Transaction Cleanser Uwaga: to zadanie zostało wycofane i nie ma wpływu na zarabianie. Codziennie o 5:30. MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Kontrola salda dewelopera Sprawdza saldo konta dewelopera. Kopiuje bieżące wykorzystanie i saldo przedpłacone lub limit kredytowy na koncie z płatnościami z dołu do tabeli kontrolnej, a następnie odejmuje bieżące wykorzystanie od konta dewelopera i resetuje saldo wykorzystania do zera. Pierwszy dzień każdego miesiąca o godzinie 00:00:05 MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Dokumentacja fakturowania miesięcznego Generuje dokumenty rozliczeniowe.

Uwaga: Apigee nie obsługuje już generowania dokumentów rozliczeniowych na podstawie funkcji zarabiania na Apigee Edge. Zobacz Wycofywanie.

11 dnia każdego miesiąca o godzinie 00:01 MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Licznik planu cenowego dla deweloperów Uwaga: to zadanie zostało wycofane i nie ma wpływu na zarabianie. Codziennie o godzinie 00:00:03 MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Opłaty dzienne Ponownie oblicza wszystkie godzinowe sumy transakcji i używa ich do obliczania dziennych sum za poprzedni dzień. Codziennie o 1:20. MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Opłaty godzinowe Oblicza łączne wartości wszystkich transakcji w każdym kwadransie. 1 minutę po każdej kwarcie godziny MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Odświeżanie konfiguracji powiadomień Ponownie indeksuje wszystkie warunki powiadomień. Co 5 minut MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Wyślij powiadomienia e-mail Wysyła zbiorcze e-maile z powiadomieniami Co godzinę MINT.EMAIL_NOTIFICATION@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Odśwież limit Uwaga: to zadanie zostało wycofane i nie ma wpływu na zarabianie. Nie dotyczy (nigdy nie jest wykonywana) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

Oprócz zadań wymienionych powyżej istnieją zadania, które możesz włączyć za pomocą powiadomień o zdarzeniach, jak pokazano w tabeli poniżej. Więcej informacji znajdziesz w artykule Konfigurowanie powiadomień.

Zadanie Opis Harmonogram Aktywator
Powiadomienie o nowym pakiecie Wysyła powiadomienie do wszystkich programistów o dostępności nowego pakietu interfejsu API. Uruchamia się raz – w dniu włączenia zadania o 21:00.

Uwaga: powiadomienia są wysyłane tylko raz, niezależnie od tego, czy skonfigurujesz cronExpression, co spowoduje wielokrotne wykonanie zadania.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nowe powiadomienie ad hoc Wysyła powiadomienie do wszystkich programistów o dostępności nowych produktów API na określonych rynkach geograficznych. Uruchamia się raz – w dniu włączenia zadania o 21:00.

Uwaga: powiadomienia są wysyłane tylko raz, niezależnie od tego, czy skonfigurujesz cronExpression, co spowoduje wielokrotne wykonanie zadania.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Powiadomienie o nowym produkcie Wysyła powiadomienie do wszystkich deweloperów o dostępności nowego produktu API. Uruchamia się raz – w dniu włączenia zadania o 21:00.

Uwaga: powiadomienia są wysyłane tylko raz, niezależnie od tego, czy skonfigurujesz cronExpression, co spowoduje wielokrotne wykonanie zadania.

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Powiadomienie o nowym abonamencie

Wysyła powiadomienie do deweloperów, których dotyczy ta zmiana, o dostępności nowego planu stawek. Wszyscy deweloperzy subskrybujący nadrzędny pakiet cenowy otrzymają powiadomienie o aktywacji nowego pakietu cenowego.

Ponadto:

  • Jeśli plan cenowy jest standardowy, wszyscy deweloperzy otrzymają powiadomienie.
  • Jeśli jest to plan cenowy dla kategorii deweloperów, powiadomienia otrzymają tylko deweloperzy z tej kategorii.
  • Jeśli jest to plan cenowy dla deweloperów, powiadomienie otrzyma tylko ten deweloper.
Rozpoczyna się w dniu rozpoczęcia nowego planu taryfowego o godzinie 4:30. MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
New Tnc Wysyła powiadomienie do deweloperów, których dotyczą nowe lub zmienione Warunki korzystania z usługi, o ich opublikowaniu (i o tym, że deweloper nie zaakceptował jeszcze tych warunków). Wysyłane 30, 7 i 1 dzień przed datą rozpoczęcia obowiązywania nowych lub zmienionych Warunków, o godzinie 21:00. MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Wygasający plan taryfowy Wysyła powiadomienie do deweloperów, których dotyczy ta zmiana, aby uprzedzić ich o wygaśnięciu planu cenowego. Uruchamiany 30, 7 i 1 dzień przed wygaśnięciem planu cenowego o godzinie 21:00. MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Zarządzanie harmonogramem zadań zarabiania za pomocą interfejsu API

W sekcjach poniżej opisujemy, jak zarządzać harmonogramem zadań związanych z zarabianiem za pomocą interfejsu API:

Więcej informacji o interfejsach API opisanych w tej sekcji znajdziesz w dokumentacji interfejsu API w sekcji Zaplanowane zadania.

Konfigurowanie aktywatorów

Algorytm szeregowania polega na aktywatorach, które wykonują zadania. Zaplanowane zadanie jest wykonywane, gdy uruchamiany jest powiązany z nim wyzwalacz. Właściwości wyzwalacza konfigurują wykonanie zadania, a ustawiając wartość tych właściwości, możesz kontrolować cechy wykonania zadania, takie jak czas i częstotliwość jego wykonywania.

Dwa najpopularniejsze typy aktywatorów to aktywatory cron i proste aktywatory. Wyrażenie CRON ma właściwość cronExpression, która określa harmonogram wykonywania. Prosty aktywator nie ma właściwości cronExpression. Aby określić, kiedy aktywator ma zacząć działać, podaj właściwość startTime, a opcjonalnie – właściwość endTime.

Właściwości wyzwalacza są następujące (wszystkie podane godziny są w czasie UTC):

Właściwość Opis
cronExpression Wyrażenie cron, które tworzy harmonogram wykonania wyzwalacza, np. „O 8:00 rano od poniedziałku do piątku” lub „O 1:30 w ostatni piątek miesiąca”. Więcej informacji znajdziesz w artykule Tworzenie wyrażeń cron.

Określenie tej właściwości definiuje wyzwalacz jako wyzwalacz cron.

Uwaga: jeśli podano zarówno parametr cronExpression, jak i parametr startTime/endTime, pierwszeństwo ma parametr cronExpression.

enabled Flaga wskazująca, czy wyzwalacz jest włączony do wykonania. Wartość może być jedną z tych opcji:
  • true. Aktywator jest włączony i może zostać uruchomiony.
  • false. Aktywator jest wyłączony – nie będzie wykonywany.
endTime Czas w formacie epoki, w którym harmonogram wyzwalacza przestaje obowiązywać.
group Typ serwera, na którym zostanie wykonany wyzwalacz. Jeśli na przykład wyzwalacz ma być wykonywany na serwerze zarządzania, wartość powinna być ustawiona na management-server. Jeśli wyzwalacz ma być wykonywany na serwerze przetwarzającym wiadomości, wartość powinna być ustawiona na message-processor.
id Identyfikator wyzwalacza.
jobId Identyfikator zadania do wykonania.
name Unikalna nazwa używana do identyfikacji reguły.
priority Względny priorytet wykonywania wyzwalaczy, jeśli zaplanowano wykonanie wielu wyzwalaczy w tym samym czasie. Im niższa wartość, tym wyższy priorytet. Jeśli na przykład 2 wyzwalacze mają zostać uruchomione w tym samym czasie, a jeden z nich ma priorytet 1, a drugi – priorytet 2, najpierw zostanie uruchomiony wyzwalacz o priorytecie 1.

Ta właściwość ma zastosowanie tylko wtedy, gdy wiele wyzwalaczy ma dokładnie ten sam czas wykonania.

startTime Dotyczy tylko prostych reguł.

Czas w formacie epoki, kiedy harmonogram wyzwalacza zaczyna obowiązywać.

Uwaga: jeśli określono zarówno parametr cronExpression, jak i parametr startTime/endTime, pierwszeństwo ma parametr cronExpression.

suiteId Flaga określająca, czy powiadomienie jest częścią pakietu powiadomień na poziomie systemu czy na poziomie domyślnym. Prawidłowe wartości to DEFAULT lub SYSTEM. Możesz też podać własną, unikalną nazwę pakietu.
triggerDataMap Klucz blokady custom_lock_key, który zapobiega wykonywaniu tego samego zadania przez wiele serwerów w tym samym czasie.

Tworzenie wyrażeń cron

Wyrażenie cron to ciąg znaków składający się z 6 lub 7 pól oddzielonych białymi znakami. Wyrażenie reprezentuje zestaw godzin, zwykle w formie harmonogramu wykonywania rutyny. Wyrażenia cron określone we właściwości cronExpression reguły są używane do planowania wykonania tej reguły.

Wyrażenie cron ma ten format: s m h dm m dw y

Gdzie:

Pole Opis Wymagane Dozwolone wartości Dozwolone znaki specjalne
s Sekundy Tak 0-59 , - * /
m Minuty Tak 0-59 , - * /
h Godziny Tak 0-23 , - * /
dm Dzień miesiąca Tak 0-31 , - * ? / L W
m Miesiąc Tak 1–12 lub JAN-DEC , - * /
dw Dzień tygodnia Tak 1–7 lub SUN-SAT , - * ? / L #
y Rok Nie Puste lub 1970–2099 , - * /

Znaki specjalne są zdefiniowane w ten sposób:

Znak specjalny Opis
* Służy do wybierania wszystkich wartości w polu. Na przykład * w polu „minuta” oznacza każdą minutę.
? Używany do określania czegoś w jednym z dwóch pól, w których znak jest dozwolony, ale nie w drugim. Jeśli na przykład chcesz, aby wyzwalacz uruchamiał się w określonym dniu miesiąca (np. 10), ale nie zależy Ci na dniu tygodnia, w polu dnia miesiąca wpisz 10, a w polu dnia tygodnia – ?. w polu dzień tygodnia.
- Służy do określania zakresów. Na przykład 10–12 w polu godziny oznacza godziny 10, 11 i 12.
, Służy do określania dodatkowych wartości. Na przykład MON,WED,FRI w polu dnia tygodnia oznacza poniedziałek, środę i piątek.
/ Służy do określania przyrostów. Na przykład 0/15 w polu sekund oznacza sekundy 0, 15, 30 i 45. A 5/15 w polu sekund oznacza sekundy 5, 20, 35 i 50. Możesz też wpisać / po znaku cudzysłowu. Jest to równoznaczne z wpisaniem 0 przed znakiem /. Wpisanie 1/3 w polu dnia miesiąca oznacza wykonywanie co 3 dni, począwszy od pierwszego dnia miesiąca.
L Ma inne znaczenie w każdym z 2 pól, w których jest dozwolony. L w polu dnia miesiąca oznacza ostatni dzień miesiąca, czyli 31 stycznia lub 28 lutego w latach nieprzestępnych. W polu dnia tygodnia litera L oznacza ostatni dzień tygodnia, czyli 7 lub SOB. Jeśli jednak jest używana w polu dnia tygodnia po innej wartości, oznacza ostatni xxx dzień miesiąca. Na przykład 6L oznacza ostatni piątek miesiąca.
W Służy do określania dnia powszedniego (od poniedziałku do piątku) najbliższego danemu dniu. Jeśli na przykład w polu „Dzień miesiąca” podasz wartość 15W, oznacza to najbliższy dzień powszedni 15 dnia miesiąca. Jeśli 15 dzień miesiąca wypada w sobotę, wyzwalacz zostanie uruchomiony w piątek 14 dnia miesiąca. Jeśli 15 dzień miesiąca wypada w niedzielę, wyzwalacz zostanie uruchomiony w poniedziałek 16 dnia miesiąca. Jeśli 15 dzień miesiąca wypada we wtorek, płatność nastąpi we wtorek 15 dnia miesiąca. Jeśli jednak określisz 1W jako dzień miesiąca, a 1 dzień miesiąca to sobota, wyzwalacz zostanie uruchomiony w poniedziałek 3 dnia miesiąca, ponieważ nie „przeskoczy” przez granicę dni miesiąca. Znaku W można używać tylko wtedy, gdy dzień miesiąca jest pojedynczym dniem, a nie zakresem ani listą dni.
# Służy do określania n-tego dnia XXX miesiąca. Na przykład wartość 6#3 w polu dnia tygodnia oznacza trzeci piątek miesiąca (dzień 6 = piątek, a #3 = trzeci w miesiącu). Inne przykłady: 2#1 = pierwszy poniedziałek miesiąca, 4#5 = piąta środa miesiąca.

Oto kilka przykładów wyrażeń cron (wszystkie podane czasy są w strefie czasowej UTC):

Wyrażenie cron Harmonogram wykonywania
0 0 12 * * ? Codziennie o 12:00.
0 15 10 * * ? 2013 10:15 rano każdego dnia w 2013 r.
0 10,44 14 ? 3 ŚR 14:10 i 14:44 w każdą środę marca.
0 15 10 ? * 6L 2013–2015 10:15 w ostatni piątek każdego miesiąca w latach 2013, 2014 i 2015.
0 15 10 ? * 6#3 10:15 w każdy trzeci piątek miesiąca.

Wyświetlanie zaplanowanych zadań za pomocą interfejsu API

Wszystkie aktualnie zaplanowane zadania możesz wyświetlić, wysyłając żądanie GET do strony /triggers?orgid={org_name}.

Na przykład:

$ curl -H "Accept:application/json" -X GET \ "http://localhost:8080/v1/mint/triggers?orgid={org_name}" \ -u email:password

Oto przykład odpowiedzi:

[ {
  "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
},
...
]

Możesz też wyświetlić konkretne zaplanowane zadanie, wysyłając żądanie GET do /triggers/{trig_id}, gdzie {trig_id} to identyfikator wyzwalacza zadania, zgodnie z opisem w omówieniu zaplanowanych zadań. Na przykład:

$ curl -X GET \ "http://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT" \ -u email:password

Oto przykład odpowiedzi:

{
    "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
}

Aktualizowanie zaplanowanych zadań za pomocą interfejsu API

Zaplanowane zadanie możesz zaktualizować, zmieniając właściwości jego wyzwalacza. Może na przykład zajść potrzeba zmiany harmonogramu wykonywania aktywatora.

W przypadku zadań wywoływanych przez crona (czyli zadań, które zawierają wartość wyrażenia cron) możesz zmieniać tylko wartości właściwości cronExpression i enabled. Pozostałe zmiany są ignorowane. W przypadku zadań, które nie określają wartości wyrażenia cron, możesz zmienić inne właściwości, takie jak startTime lub priority.

Aby zaktualizować zaplanowane zadanie, wyślij żądanie PUT do /triggers/{trig_id}, gdzie {trig_id} to identyfikator reguły zadania, zgodnie z opisem w omówieniu zaplanowanych zadań. Gdy wprowadzisz zmianę, musisz w treści żądania podać zaktualizowane ustawienia i identyfikator aktywatora.

Na przykład to żądanie aktualizuje wyrażenie cron dla zadania odnowienia nowego planu cenowego dla deweloperów, aby było ono uruchamiane codziennie o 5:00 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

Wyłączanie i ponowne włączanie zaplanowanego zadania za pomocą interfejsu API

Aby wyłączyć zaplanowane zadanie, ustaw wartość właściwości enabled jego wyzwalacza na false. Na przykład:

$ 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

Aby ponownie włączyć wyłączone zadanie, ustaw wartość właściwości enabled jego wyzwalacza na true.

Dalsze kroki

Zalecamy okresowe ponowne synchronizowanie z monetyzacją organizacji oraz wszystkich programistów, aplikacji i produktów utworzonych za pomocą usług API Edge. Dowiedz się, jak synchronizować dane Apigee Edge z danymi o przychodach.