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@@@ |
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@@@ |
Aktualizator XeFeed | Uzyskuje kurs wymiany w dolarach amerykańskich dla każdej obsługiwanej waluty. | Codziennie o 1 sekundę po północy | MINT.XEFEED@@@ |
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@@@ |
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@@@ |
Środek do czyszczenia transakcji | Uwaga: to zadanie zostało wycofane i nie ma wpływu na zarabianie. | Codziennie o 5:30 | MINT.TX_CLEANSER@@@ |
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@@@ |
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@@@ |
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@@@ |
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@@@ |
Opłaty godzinowe | Oblicza łączną kwotę transakcji dla każdego kwadransa. | 1 minuta po każdym kwadracie godziny | MINT.CHARGE_HOURLY@@@ |
Odśwież konfigurację powiadomień | Ponownie indeksuje wszystkie warunki powiadomień. | Co 5 minut | MINT.REFRESH_NOTIFICATION_CONFIG@@@ |
Wyślij powiadomienia e-mail | Wysyła zgromadzone powiadomienia e-mail | Co godzinę | MINT.EMAIL_NOTIFICATION@@@ |
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@@@ |
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 |
MINT.NEW_PACKAGE_NOTIFY@@@ |
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 |
MINT.ADHOC_NOTIFY@@@ |
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 |
MINT.NEW_PRODUCT_NOTIFY@@@ |
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:
|
Uruchamiany w dniu rozpoczęcia nowego planu stawek o godz.4:30. | MINT.NEW_RATEPLAN_NOTIFY@@@ |
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@@@ |
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@@@ |
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:
- Konfigurowanie aktywatorów
- Tworzenie wyrażeń cron
- Wyświetlanie zaplanowanych zadań przy użyciu interfejsu API
- Aktualizowanie zaplanowanych zadań przy użyciu interfejsu API
- Wyłączanie i ponowne włączanie zaplanowanego zadania 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 |
enabled |
Flaga wskazująca, czy aktywator jest włączony. Możliwe wartości:
|
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 |
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.
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.