Planowanie zadań generowania przychodu

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Omówienie zaplanowanych zadań

Funkcja zarabiania udostępnia algorytm szeregowania zadań i zestaw zadań, które są zaplanowane do uruchomienia w wyznaczonych godzinach.

W tabeli poniżej znajdziesz wstępnie zaplanowane zadania udostępniane w ramach funkcji zarabiania oraz godziny ich uruchomienia (wszystkie godziny podane są w czasie UTC). Zobaczysz też wyzwalacz dla każdego zadania.

Zadanie Opis Harmonogram (UTC) Aktywator
Miesięczna stawka podatku od dewelopera Pobiera stawkę podatku z wyszukiwarki każdego dewelopera i aktualizuje nazwę dewelopera o zmienioną stawkę. Pierwszy dzień każdego miesiąca o 5:45 MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Odnów subskrypcję Stosuje opłaty cykliczne za aktywne plany stawek lub nowe opłaty w przypadku przyszłych abonamentów, które zaczynają się bieżącego dnia. Codziennie o 5 sekund po północy MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Aktualizator XeFeed Uzyskuje kurs wymiany w dolarach amerykańskich dla każdej obsługiwanej waluty. Codziennie o 1 sekundę po północy MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Odnów abonament dla deweloperów Zmienia daty odnowienia abonamentu i oblicza opłaty za wcześniejsze zakończenie. Codziennie o 2:20 MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Ponów próbę przekazywania 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
Środek do czyszczenia transakcji 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 Kontroluje saldo konta dewelopera. Kopiowanie bieżącego wykorzystania oraz limitu przedpłaconego salda/limitu kredytu po wykonaniu usługi do tabeli kontroli, a następnie odejmuje bieżące wykorzystanie z konta dewelopera i zwraca saldo użycia do zera. Pierwszy dzień każdego miesiąca o 5 sekund po północy MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Comiesięczne dokumenty rozliczeniowe Generuje dokumenty rozliczeniowe.

Uwaga: Apigee nie obsługuje już generowania dokumentów rozliczeniowych z usługi Apigee Edge Monetization. Zobacz Emerytura.

11 dnia każdego miesiąca, 1 minuta po północy MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Licznik planu stawek dewelopera Uwaga: to zadanie zostało wycofane i nie ma wpływu na zarabianie. Codziennie o 3 sekundy po północy MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Dzienne opłaty Ponownie oblicza wszystkie godzinowe sumy transakcji i wykorzystuje je do obliczania łącznych wartości dziennych z poprzedniego dnia. Codziennie o 1:20 MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Opłaty godzinowe Oblicza łączną kwotę transakcji dla każdego kwadransa. 1 minuta po każdym kwadracie godziny MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Odśwież konfigurację 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 zgromadzone powiadomienia e-mail Co godzinę MINT.EMAIL_NOTIFICATION@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Limit odświeżania Uwaga: to zadanie zostało wycofane i nie ma wpływu na zarabianie. Nie dotyczy (nigdy nie jest wykonywane) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

Oprócz zadań wymienionych powyżej istnieją zadania, które możesz włączyć przy użyciu powiadomień o zdarzeniach. Ich listę znajdziesz w poniższej tabeli. Więcej informacji znajdziesz w artykule Konfigurowanie powiadomień.

Zadanie Opis Zaplanuj Aktywator
Powiadomienie o nowym pakiecie Wysyła powiadomienie do wszystkich deweloperów o udostępnieniu nowego pakietu interfejsu API. Uruchamia się raz – w dniu włączenia zadania o 21:00.

Uwaga: powiadomienia są wysyłane tylko raz bez względu na to, czy skonfigurujesz cronExpression, przez co zadanie będzie wykonywane wiele razy.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nowe powiadomienie o nieodpowiednich produkcjach Wysyła powiadomienie do wszystkich deweloperów, że nowe usługi API są dostępne na określonych rynkach geograficznych. Uruchamia się raz – w dniu włączenia zadania o 21:00.

Uwaga: powiadomienia są wysyłane tylko raz bez względu na to, czy skonfigurujesz cronExpression, przez co zadanie będzie wykonywane wiele razy.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Powiadomienie o nowym produkcie Wysyła powiadomienie do wszystkich deweloperów o udostępnieniu nowej usługi API. Uruchamia się raz – w dniu włączenia zadania o 21:00.

Uwaga: powiadomienia są wysyłane tylko raz bez względu na to, czy skonfigurujesz cronExpression, przez co zadanie będzie wykonywane wiele razy.

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

Wysyła powiadomienie do deweloperów, których dotyczy zmiana, że dostępny jest nowy abonament. Wszyscy deweloperzy, którzy subskrybują nadrzędny abonament, otrzymają powiadomienie, że nowy abonament jest aktywny.

Ponadto:

  • Jeśli jest to abonament standardowy, wszyscy deweloperzy otrzymają powiadomienie.
  • Jeśli jest to plan stawek dla deweloperów, tylko deweloperzy z tej kategorii będą otrzymywać powiadomienia.
  • W przypadku abonamentu dewelopera tylko ten deweloper otrzyma powiadomienie.
Uruchamiany w dniu rozpoczęcia nowego planu stawek o godz.4:30. MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
New Tnc, Wysyła powiadomienie do deweloperów, których dotyczy problem, że zostały opublikowane nowe lub zmienione Warunki korzystania z usługi (a deweloper ich jeszcze ich nie zaakceptował). Uruchomi się 30, 7 i 1 dzień przed datą rozpoczęcia nowych lub zmienionych Warunków, o 21:00. MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Abonament, który wkrótce wygaśnie Wysyła powiadomienie do deweloperów, których dotyczy problem, aby z wyprzedzeniem ostrzegać o wygaśnięciu abonamentu. Uruchamia się 30, 7 i 1 dzień przed wygaśnięciem planu taryfowego, o 21:00. MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Zarządzanie harmonogramem zadań zarabiania przy użyciu interfejsu API

Z tych sekcji dowiesz się, jak zarządzać harmonogramem zadań zarabiania za pomocą interfejsu API:

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

Konfigurowanie aktywatorów

Algorytm szeregowania używa aktywatorów do wykonywania zadań. Zaplanowane zadanie jest wykonywane po wykonaniu powiązanego z nim aktywatora. Właściwości aktywatora definiują wykonywanie zadania, a ustawiając wartości tych właściwości, możesz kontrolować charakterystykę wykonywania zadania, np. czas i częstotliwość wykonywania zadania.

Dwa najczęstsze typy aktywatorów to reguły cron i proste. Aktywator cron ma właściwość cronExpression, która określa harmonogram wykonywania. Prosty aktywator nie ma właściwości cronExpression. Określasz startTime, aby wskazać, kiedy aktywator zostanie zastosowany, i opcjonalnie endTime.

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

Właściwość Opis
cronExpression Wyrażenie cron umożliwiające utworzenie harmonogramu wykonywania aktywatora, na przykład „Od 8:00 w każdy poniedziałek do piątku” lub „W każdy ostatni piątek miesiąca o 1:30”. Więcej informacji znajdziesz w artykule o tworzeniu wyrażeń cron.

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

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

enabled Flaga wskazująca, czy aktywator jest włączony. Możliwe wartości:
  • true. Aktywator jest włączony do wykonywania.
  • false. Aktywator jest wyłączony – nie zostanie wykonany.
endTime Czas w formacie epoki, w której harmonogram aktywatora już nie obowiązuje.
group Typ serwera, na którym zostanie uruchomiony aktywator. Jeśli na przykład aktywator ma być uruchamiany na serwerze zarządzania, wartość powinna być ustawiona na management-server. Jeśli aktywator ma być uruchamiany na serwerze przetwarzania wiadomości, wartość powinna być ustawiona na message-processor.
id Identyfikacja wyzwalacza.
jobId Identyfikacja zadania do wykonania.
name Unikalna nazwa używana do identyfikacji reguły.
priority Względny priorytet wykonywania aktywatorów, jeśli zaplanowane jest takie samo wykonanie wielu aktywatorów. Im niższa wartość, tym wyższy priorytet. Jeśli na przykład w tym samym czasie zaplanowano wykonanie 2 aktywatorów, a jeden z nich ma priorytet 1, a drugi priorytet 2, to aktywator o priorytecie 1 zostanie wykonany jako pierwszy.

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

startTime Dotyczy tylko prostych reguł.

Czas w formacie epoki, w której obowiązuje harmonogram aktywatora.

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

suiteId Flaga określająca, czy powiadomienia z pakietu powiadomień na poziomie systemu czy na poziomie domyślnym. Prawidłowe wartości to DEFAULT lub SYSTEM albo możesz podać własną, unikalną nazwę pakietu.
triggerDataMap Klucz blokady (custom_lock_key), który uniemożliwia kilku serwerom wykonywanie tego samego zadania w tym samym czasie.

Tworzenie wyrażeń cron

Wyrażenie cron to ciąg składający się z 6 lub 7 pól rozdzielonych spacjami. Wyrażenie reprezentuje zbiór czasów, zwykle jako harmonogram wykonywania rutyny. Wyrażenia cron określone we właściwości cronExpression aktywatora służą do planowania wykonania tego aktywatora.

Wyrażenie cron ma taki 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 Pusty lub 1970-2099 , - * /

Znaki specjalne są definiowane w ten sposób:

Znak specjalny Opis
* Służy do wyboru wszystkich wartości w polu. Na przykład znak * w polu minut oznacza każdą minutę.
? Służy do określenia czegoś w jednym z dwóch pól, w których ten znak jest dozwolony, ale nie w drugim. Jeśli na przykład chcesz, aby reguła była uruchamiana określonego dnia miesiąca (np. 10 dnia miesiąca), ale nie interesuje Cię, w jakim dniu tygodnia, w polu dnia miesiąca wpisz 10 oraz ? w polu dnia 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 dni, w które: poniedziałek, środa 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. Z kolei 5/15 w polu sekund oznacza sekundy 5, 20, 35 i 50. Możesz też podać znak / po znaku „. Jest to równoważne z przypisaniem wartości 0 przed znakiem /. Jeśli w polu dzień miesiąca podasz 1/3, kod będzie uruchamiany co 3 dni, zaczynając od pierwszego dnia miesiąca.
L ma inne znaczenie w każdym z dwóch pól, w których jest dozwolony. L w polu dnia miesiąca oznacza ostatni dzień miesiąca, czyli 31 stycznia lub dzień 28 w przypadku lutego w latach bez przestępnych. W polu dnia tygodnia L oznacza ostatni dzień tygodnia, czyli 7 lub SAT. Jeśli jednak pojawi się w polu dnia tygodnia po innej wartości, będzie to ostatni xxx dzień miesiąca. Na przykład 6L oznacza ostatni piątek miesiąca.
Ś Służy do określania dnia tygodnia (poniedziałek–piątek) najbliższego dnia. Jeśli na przykład w polu dnia miesiąca podasz wartość 15 W, będzie to najbliższy dzień roboczy do 15 dnia miesiąca. Jeśli więc 15 to sobota, reguła zostanie uruchomiona w piątek, 14 dnia miesiąca. Jeśli 15 to niedziela, aktywator zostanie uruchomiony w poniedziałek, 16 dnia miesiąca. Jeśli 15 to wtorek, zostanie wykonany we wtorek 15 dnia miesiąca. Jeśli jednak podasz 1 W dla dnia miesiąca, a 1 dzień miesiąca to sobota, reguła zostanie wykonana w poniedziałek 3 dnia miesiąca, ponieważ nie „przeskoczy” ponad granicę dni miesiąca. Znak W można określić tylko wtedy, gdy dzień miesiąca to 1 dzień, a nie zakres lub lista dni.
# Służy do określania n-tego XXX dnia miesiąca. Na przykład wartość 6#3 w polu dnia tygodnia oznacza trzeci piątek miesiąca (dzień 6 = piątek, a 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 godziny są podane w czasie UTC):

Wyrażenie cron Harmonogram wykonywania
0 0 12 * * ? codziennie o 12:00 (południe).
0 15 10 * * ? 2013 o 10:15 codziennie w 2013 roku.
0 10,44 14 ? 3 ŚR w każdą środę marca o godz. 14:10 i o 14:44.
0 15 10 ? * 6L 2013–2015 w ostatni piątek każdego miesiąca w latach 2013, 2014 i 2015 o 10:15.
0 15 10 ? * 6#3 w trzeci piątek każdego miesiąca o 10:15.

Wyświetlanie zaplanowanych zadań przy użyciu interfejsu API

Możesz wyświetlić wszystkie aktualnie zaplanowane zadania, wysyłając żądanie GET do /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

Poniżej znajdziesz przykładową odpowiedź:

[ {
  "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ć określone zaplanowane zadanie, wysyłając żądanie GET do /triggers/{trig_id}, gdzie {trig_id} wskazuje aktywator zadania, jak opisano w sekcji Omówienie 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

Poniżej znajdziesz przykładową odpowiedź:

{
    "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ń przy użyciu interfejsu API

Możesz zaktualizować zaplanowane zadanie, zmieniając właściwości jego aktywatora. Może być na przykład konieczna zmiana harmonogramu wykonywania aktywatora.

W przypadku zadań aktywatorów cron (czyli zadań zawierających wartość wyrażenia cron) możesz zmieniać tylko wartości właściwości cronExpression i włączonych właściwości. Inne zmiany są ignorowane. W przypadku zadań, które nie mają określonej 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 aktywatora zadania, zgodnie z opisem w sekcji Omówienie zaplanowanych zadań. Podczas aktualizacji musisz podać w treści żądania zaktualizowane ustawienia i identyfikator aktywatora.

Na przykład to żądanie aktualizuje wyrażenie cron dla zadania odnawiania nowego abonamentu dla deweloperów, które będzie uruchamiane codziennie o 5:00 czasu 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 przy użyciu interfejsu API

Aby wyłączyć zaplanowane zadanie, ustaw wartość właściwości enabled jego aktywatora na false (fałsz). 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 aktywatora na wartość true.

Dalsze kroki

Zalecamy okresowe ponowne synchronizowanie danych związanych z zarabianiem w organizacji oraz wszystkich programistach, aplikacjach i usługach utworzonych przy użyciu usług Edge API. Więcej informacji znajdziesz w artykule o synchronizowaniu danych Apigee Edge z zarabianiem.