Planowanie zadań generowania przychodu

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Omówienie zaplanowanych zadań

Funkcja generowania przychodu udostępnia harmonogram zadań i zestaw zadań z wstępnym harmonogramem, które mają zostać wykonane w określonym czasie.

W tabeli poniżej znajdziesz wstępnie zaplanowane zadania wykonywane w ramach funkcji zarabiania oraz terminy ich realizacji jest zaplanowane (wszystkie godziny są podane w czasie UTC). Na liście znajduje się też aktywator każdego zadania.

Zadanie Opis Harmonogram (UTC) Aktywator
Miesięczna stawka podatku dla deweloperów Pobiera stawkę podatku z mechanizmu podatkowego dla każdego dewelopera i aktualizuje go podmiotu ze zmienioną stawką podatku. 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 w przypadku aktywnych planów stawek lub nowe opłaty z przyszłych planów, które zaczyna się w bieżącym dniu. 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 Przesuwa daty odnowienia abonamentu i oblicza opłaty za przedterminowe zerwanie umowy. Codziennie o 2:20 MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Ponawianie próby przekazania transakcji Uwaga: to zadanie zostało wycofane i nie ma wpływu na o generowaniu przychodu. 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 o generowaniu przychodu. Codziennie o 5:30 MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Kontrola salda programisty Kontroluje saldo konta dewelopera. Kopiuje bieżące użycie i przedpłaconą limitu kredytu/spłaty po wykonaniu usługi do tabeli kontroli, a następnie odejmuje bieżące wykorzystanie od konta dewelopera i zwraca saldo wykorzystania do zera. Pierwszy dzień każdego miesiąca o 5 sekund po północy MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Dokumentacja rozliczeń miesięcznych Generuje dokumenty rozliczeniowe.

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

11 dnia każdego miesiąca o 1 minucie po północy MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Licznik w planie stawek dla deweloperów Uwaga: to zadanie zostało wycofane i nie ma wpływu na o generowaniu przychodu. Codziennie o 3 sekundy po północy MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Dzienne opłaty Ponownie oblicza łączne godzinowe sumy transakcji i używa ich do obliczania sum dla poprzedniego dnia. Codziennie o 1:20 MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Opłaty godzinowe Oblicza wszystkie sumy transakcji dla każdego kwadransa. 1 minutę po każdej kwadransie 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 o generowaniu przychodu. Nie dotyczy (nigdy nie jest wykonywany) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

Oprócz wymienionych powyżej zadań możesz też włączyć te zadania przez zdarzenie. powiadomień, jak podano w poniższej tabeli. Więcej informacji znajdziesz w artykule Konfigurowanie powiadomień.

Zadanie Opis Harmonogram Aktywator
Powiadomienie o nowej paczce Wysyła powiadomienie do wszystkich deweloperów, że jest dostępny nowy pakiet interfejsów API. Jest uruchamiane raz – w dniu włączenia zadania o 21:00.

Uwaga: powiadomienia są wysyłane tylko raz, niezależnie od tego, czy skonfigurować cronExpression, co spowoduje wielokrotne wykonywanie zadania razy.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nowe doraźne powiadomienie Wysyła powiadomienie do wszystkich deweloperów, że nowe usługi API są dostępne w określonych rynki geograficzne. Jest uruchamiane raz – w dniu włączenia zadania o 21:00.

Uwaga: powiadomienia są wysyłane tylko raz, niezależnie od tego, czy skonfigurować cronExpression, co spowoduje wielokrotne wykonywanie zadania razy.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Powiadomienie o nowym produkcie Wysyła powiadomienie do wszystkich deweloperów, że jest dostępny nowy interfejs API. Jest uruchamiane raz – w dniu włączenia zadania o 21:00.

Uwaga: powiadomienia są wysyłane tylko raz, niezależnie od tego, czy skonfigurować cronExpression, co spowoduje wielokrotne wykonywanie zadania razy.

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Powiadomienie o nowym planie stawek

Wysyła powiadomienie do deweloperów, których dotyczy ta zmiana, że jest dostępny nowy abonament. Wszystkie deweloperzy, którzy subskrybują nadrzędny abonament, są powiadamiani, że został aktywne.

Ponadto:

  • Jeśli jest to abonament standardowy, wszyscy deweloperzy otrzymają powiadomienie.
  • Jeśli jest to plan stawek dla kategorii deweloperów, tylko deweloperzy w tej kategorii otrzymają powiadomienia.
  • Jeśli jest to plan stawek dla deweloperów, tylko ten deweloper otrzyma powiadomienia.
Uruchamiany w dniu rozpoczęcia nowego planu stawek o 4:30. MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nowy tnc Wysyła do odpowiednich deweloperów powiadomienie, że nowe lub zmienione Warunki korzystania z usługi zostały opublikowane (a deweloper jeszcze ich nie zaakceptował). a także zostaną zastosowane 30, 7 i 1 dzień przed datą rozpoczęcia obowiązywania nowych lub zmienionych Warunków korzystania z usługi. o 21:00 MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Wygasający abonament Wysyła powiadomienie do deweloperów, których dotyczy problem, aby z wyprzedzeniem ostrzegać o planach taryfowych. wygaśnie. Uruchomienie 30, 7 i 1 dzień przed wygaśnięciem planu stawek o 21:00. MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Zarządzanie harmonogramem zadań związanych z generowaniem przychodu za pomocą interfejsu API

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

Więcej informacji o interfejsach API opisanych w tej sekcji znajdziesz w artykule Zaplanowane zadania w interfejsie API. odwołania.

Konfigurowanie aktywatorów

Algorytm szeregowania wykorzystuje aktywatory do wykonywania zadań. Zaplanowane zadanie jest wykonywane, gdy jest powiązane . Właściwości aktywatora określają wykonywanie zadania, a przez ustawienie wartości pozwalają określić właściwości wykonania zadania, np. kiedy i częstotliwość ich uruchamiania.

Dwa najpopularniejsze typy aktywatorów to reguły cron i reguły proste reguły. Aktywator cron ma właściwość cronExpression, która określa w harmonogramie wykonywania zadań. Prosta reguła nie ma właściwości cronExpression. Ty i określ startTime, aby wskazać, kiedy reguła zostanie zastosowana; (opcjonalnie) endTime.

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

Właściwość Opis
cronExpression Wyrażenie cron tworzące harmonogram wykonania dla aktywatora, na przykład: „O 8:00 w każdy poniedziałek–piątek” lub „O 1:30 w nocy w każdy ostatni piątek miesiąca”. Zobacz Tworzenie wyrażeń cron, aby dowiedzieć się więcej.

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

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

enabled Flaga wskazująca, czy aktywator może być wykonywany. Wartość może być jedną z tych wartości: następujące:
  • true Aktywator może być wykonywany.
  • false. Aktywator jest wyłączony – nie będzie wykonywany.
endTime Czas w formacie epoki, w którym harmonogram aktywatora już nie obowiązuje.
group Typ serwera, na którym zostanie wykonany aktywator. Jeśli na przykład reguła to ma być wykonywane na serwerze zarządzania, wartość powinna być ustawiona na management-server Jeśli aktywator ma być wykonywany w wiadomości serwera przetwarzania danych, należy ustawić wartość na message-processor.
id Identyfikacja wyzwalacza.
jobId Identyfikator zadania do wykonania.
name Unikalna nazwa używana do identyfikacji aktywatora.
priority Względny priorytet wykonania aktywatorów, jeśli zaplanowano wykonanie wielu aktywatorów jednocześnie. Im niższa wartość, tym wyższy priorytet. Na przykład, jeśli 2 reguły są zaplanowane do tego samego działania, a jeśli jedna z reguł ma priorytet 1, o priorytecie 2, reguła o priorytecie 1 jest uruchamiana jako pierwsza.

Ta właściwość ma zastosowanie tylko wtedy, gdy wiele aktywatorów ma dokładnie to samo wykonanie obecnie się znajdujesz.

startTime Dotyczy tylko prostych reguł.

Czas w formacie epoki, w którym zaczyna obowiązywać harmonogram aktywatora.

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

suiteId Flaga określająca, czy powiadomienie na poziomie systemu czy na poziomie domyślnym zestaw powiadomień. 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 uruchomienie wielu serwerów w tym samym czasie pracy.

Tworzenie wyrażeń cron

Wyrażenie cron to ciąg znaków zawierający 6 lub 7 pól rozdzielonych spacją. reprezentuje zestaw czasów, zwykle jako harmonogram wykonywania rutyny. cron wyrażenia określone we właściwości cronExpression aktywatora aby zaplanować wykonanie tego aktywatora.

Wyrażenie cron ma następujący 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 STY , – * /
dw Dzień tygodnia Tak 1–7 lub SUN-SAT , – * ? / l #
y Rok Nie Pusta lub 1970–2099 , – * /

Znaki specjalne są następujące:

Znak specjalny Opis
* Służy do wybierania wszystkich wartości w polu. Na przykład znak * w polu minut oznacza co minutę.
? Służy do określenia czegoś w jednym z dwóch pól, w których dany znak jest dozwolony, ale nie na drugą. Jeśli na przykład chcesz, aby reguła uruchamiała się w określonym dniu miesiąc (np. 10), ale niezależnie od dnia tygodnia podaj 10 w dniu i ciągu miesiąca, a znak ? w polu dnia tygodnia.
- Służy do określania zakresów. Na przykład zapis 10–12 w polu godziny oznacza godziny 10, 11 i 12.
, Służy do określania dodatkowych wartości. Na przykład PN,ŚR,PT. w polu dnia tygodnia oznaczają poniedziałek, środę i piątek.
/ Służy do określania przyrostów. Na przykład 0/15 w polu sekund oznacza, że sekundy 0 są 0, 15, 30 i 45. Z kolei 5/15 w polu sekundy oznacza sekundy 5, 20, 35 i 50. Dostępne opcje należy też określić / po „ znaku. Jest to równoważne z 0 przed znakiem /. Jeśli w polu dnia miesiąca określisz wartość 1/3, oznacza to, że wykonywane są co 3 dni, począwszy od pierwszego dzień miesiąca.
L Ma inne znaczenie w każdym z tych 2 pól, w których jest dozwolone. L w dniu pole miesiąca oznacza ostatni dzień miesiąca, czyli 31 dzień miesiąca, czyli 31 dzień w przypadku stycznia lub dzień 28. w lutym w latach innych niż przestępne. W polu dnia tygodnia L oznacza ostatni dzień tygodnia. czyli 7, czyli SAT. Jeśli jednak zostanie użyty w polu dnia tygodnia po innej wartości, oznacza to, że ostatniego xxx dnia miesiąca. Na przykład 6L oznacza ostatni piątek miesiąca.
W Służy do określania dnia tygodnia (od poniedziałku do piątku) najbliższego dnia. Na przykład, jeśli W polu dnia miesiąca podaj 15 W, oznacza to, że najbliższy dzień roboczy przypada w ciągu 15 dnia miesiąca. miesiąc. Jeśli więc 15 dzień miesiąca to sobota, reguła zostanie aktywowana w piątek, 14 dnia miesiąca. Jeśli 15 dzień miesiąca to niedziela, reguła zostanie uruchomiona w poniedziałek, 16 dnia miesiąca. Jeśli 15 dzień miesiąca to wtorek, a jej realizacja nastąpi we wtorek 15 dnia. Jeśli jednak określisz 1 W dla dnia miesiąca, a pierwsza to sobota, reguła zostanie uruchomiona w poniedziałek 3 dnia, ponieważ nie będzie „przeskok” ponad dni miesiąca. Znak W można określić tylko wtedy, gdy dzień miesiąca to jeden dzień, a nie zakres ani lista dni.
# Służy do określenia n-tego XXX dnia miesiąca. Na przykład wartość 6#3 w dniu pole tygodnia oznacza trzeci piątek miesiąca (dzień 6 = piątek i nr 3 = trzeci piątek miesiąca) miesiąc). Inne przykłady: 2#1 = pierwszy poniedziałek miesiąca, 4#5 = piąty Ś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 * * ? 12:00 (południe) każdego dnia.
0 15 10 * * ? 2013 10:15 w 2013 roku.
0 10,44 14 ? 3 ŚRO 14:10 oraz o 14:44. w każdą środę marca.
0 15 10 * 6L 2013–2015 10:15 w ostatni piątek miesiąca w latach 2013, 2014, 2015 r.
0 15 10 * 6#3 10:15 w trzeci piątek każdego miesiąca.

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

Aby wyświetlić wszystkie aktualnie zaplanowane zadania, wyślij żą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

Oto przykład takiej 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 zadania aktywator, jak opisano w sekcji Przegląd 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 takiej 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ń przy użyciu interfejsu API

Zaplanowane zadanie możesz zaktualizować, zmieniając właściwości jego aktywatora. Na przykład: może być konieczna zmiana harmonogramu wykonywania aktywatora.

W przypadku zadań aktywatorów cron (czyli zadań, które zawierają wartość wyrażenia cron) możesz tylko zmień wartości cronExpression i włączonych właściwości. Pozostałe zmiany: zignorowano. W przypadku zadań, które nie mają określonej wartości wyrażenia cron, możesz zmienić inne właściwości na przykład startTime lub priority.

Aby zaktualizować zaplanowane zadanie, wyślij żądanie PUT do zadania /triggers/{trig_id}, gdzie {trig_id} to identyfikator aktywatora zadania, zgodnie z opisem w sekcji Omówienie zaplanowanych zadań. Wprowadzając aktualizację, w sekcji treść żądania zaktualizowane ustawienia oraz identyfikator aktywatora.

Na przykład to żądanie aktualizuje wyrażenie cron na potrzeby nowego abonamentu dla programistów Zadanie odnowienia każdego dnia 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 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 true (prawda).

Dalsze kroki

Zaleca się co jakiś czas synchronizowanie danych organizacji z danymi dotyczącymi zarabiania programistów, aplikacji i usług utworzonych przez Ciebie przy użyciu usług interfejsu Edge API. Więcej informacji: Synchronizuj Dane Apigee Edge z monetyzacją.