Menjadwalkan tugas monetisasi

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Ringkasan tugas terjadwal

Monetisasi menyediakan penjadwal tugas dan serangkaian tugas yang telah dijadwalkan sebelumnya untuk dijalankan pada waktu yang ditentukan.

Tabel di bawah mencantumkan tugas yang telah dijadwalkan sebelumnya yang disediakan oleh monetisasi dan waktu tugas tersebut dijadwalkan untuk dijalankan (semua waktu yang tercantum dalam UTC). Pemicu untuk setiap tugas juga tercantum.

Tugas Deskripsi Jadwal (UTC) Pemicu
Tarif Pajak Developer Bulanan Mengambil tarif pajak dari mesin pajak untuk setiap developer, dan memperbarui entitas developer dengan tarif pajak yang direvisi. Hari pertama setiap bulan pukul 05.45 MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Memperpanjang Langganan Menerapkan biaya berulang untuk paket tarif aktif atau biaya baru untuk paket tarif mendatang yang dimulai pada hari ini. Setiap hari pada pukul 5 detik lewat tengah malam MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Updater XeFeed Mendapatkan nilai tukar dalam dolar AS untuk setiap mata uang yang didukung. Setiap hari pada pukul 1 detik lewat tengah malam MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Perpanjang Paket Tarif Developer Menggeser tanggal perpanjangan untuk paket tarif dan menghitung biaya penghentian awal. Setiap hari pukul 02.20. MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Coba Lagi Relai Transaksi Catatan: Tugas ini tidak digunakan lagi dan tidak berdampak pada monetisasi. Setiap hari pukul 04.30. MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Pembersih Transaksi Catatan: Tugas ini tidak digunakan lagi dan tidak berdampak pada monetisasi. Setiap hari pukul 05.30. MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Audit Saldo Developer Mengaudit saldo akun developer. Menyalin penggunaan saat ini dan batas saldo prabayar/kredit pascabayar ke tabel audit, lalu memotong penggunaan saat ini dari akun developer dan menampilkan saldo penggunaan ke nol. Hari pertama setiap bulan pada pukul 5 detik lewat tengah malam MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Dokumen Penagihan Bulanan Membuat dokumen penagihan.

Catatan: Apigee tidak lagi mendukung pembuatan dokumen penagihan dari Monetisasi Apigee Edge. Lihat Penghentian.

Hari ke-11 setiap bulan pada 1 menit setelah tengah malam MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Penghitung Paket Tarif Developer Catatan: Tugas ini tidak digunakan lagi dan tidak berdampak pada monetisasi. Setiap hari pada pukul 3 detik lewat tengah malam MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Tagihan Harian Menghitung ulang semua total transaksi per jam dan menggunakannya untuk menghitung total harian untuk hari sebelumnya. Setiap hari, pukul 01.20. MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Biaya Per Jam Menghitung semua total transaksi untuk setiap kuartal dalam satu jam. 1 menit lewat setiap seperempat jam MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Muat ulang konfigurasi notifikasi Mengindeks ulang semua kondisi notifikasi. Setiap 5 menit MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Kirim notifikasi email Mengirim notifikasi email yang terakumulasi Setiap jam MINT.EMAIL_NOTIFICATION@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Batas Muat Ulang Catatan: Tugas ini tidak digunakan lagi dan tidak berdampak pada monetisasi. T/A (Tidak pernah dijalankan) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

Selain tugas yang tercantum di atas, ada tugas yang dapat Anda aktifkan melalui notifikasi peristiwa, seperti yang tercantum dalam tabel berikut. Untuk informasi selengkapnya, lihat Menyiapkan notifikasi.

Tugas Deskripsi Jadwal Pemicu
Notifikasi Paket Baru Mengirimkan notifikasi kepada semua developer bahwa paket API baru tersedia. Berjalan satu kali — pada hari tugas diaktifkan pukul 21.00.

Catatan: Notifikasi hanya dikirim sekali, terlepas dari apakah Anda mengonfigurasi cronExpression yang mengakibatkan tugas dijalankan beberapa kali atau tidak.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notifikasi Ad Hoc Baru Mengirimkan notifikasi kepada semua developer bahwa produk API baru tersedia di pasar geografis tertentu. Berjalan satu kali — pada hari tugas diaktifkan pukul 21.00.

Catatan: Notifikasi hanya dikirim sekali, terlepas dari apakah Anda mengonfigurasi cronExpression yang mengakibatkan tugas dijalankan beberapa kali atau tidak.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notifikasi Produk Baru Mengirimkan notifikasi kepada semua developer bahwa produk API baru tersedia. Berjalan satu kali — pada hari tugas diaktifkan pukul 21.00.

Catatan: Notifikasi hanya dikirim sekali, terlepas dari apakah Anda mengonfigurasi cronExpression yang mengakibatkan tugas dijalankan beberapa kali atau tidak.

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notifikasi Paket Tarif Baru

Mengirimkan notifikasi kepada developer yang terpengaruh bahwa paket tarif baru tersedia. Semua developer yang berlangganan paket tarif induk akan diberi tahu bahwa paket tarif baru aktif.

Selain itu:

  • Jika paket tarif tersebut adalah paket standar, semua developer akan mendapatkan notifikasi.
  • Jika ini adalah paket tarif kategori developer, hanya developer dalam kategori tersebut yang akan menerima notifikasi.
  • Jika ini adalah paket tarif developer, hanya developer tertentu yang akan diberi tahu.
Berjalan pada tanggal mulai paket tarif baru, pukul 04.30. MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Tnc Baru Mengirimkan notifikasi kepada developer yang terpengaruh bahwa Persyaratan dan Ketentuan baru atau yang direvisi telah dipublikasikan (dan developer belum menyetujuinya). Berjalan 30, 7, dan 1 hari sebelum tanggal mulai Persyaratan dan Ketentuan baru atau yang direvisi, pukul 21.00. MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Paket tarif yang akan habis masa berlakunya Mengirim notifikasi kepada developer yang terpengaruh untuk memberikan peringatan awal bahwa masa berlaku paket tarif akan berakhir. Berjalan 30, 7, dan 1 hari sebelum berakhirnya paket tarif, pada pukul 21.00. MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Mengelola jadwal tugas monetisasi menggunakan API

Bagian berikut menjelaskan cara mengelola jadwal tugas monetisasi menggunakan API:

Untuk informasi selengkapnya tentang API yang dijelaskan di bagian ini, lihat Tugas terjadwal dalam referensi API.

Mengonfigurasi pemicu

Penjadwal bergantung pada pemicu untuk menjalankan tugas. Tugas terjadwal dijalankan saat pemicu terkaitnya dijalankan. Properti pemicu mengonfigurasi eksekusi tugas, dan dengan menetapkan nilai properti ini, Anda dapat mengontrol karakteristik eksekusi tugas seperti kapan tugas dijalankan, dan seberapa sering.

Dua jenis pemicu yang paling umum adalah pemicu cron dan pemicu sederhana. Pemicu cron memiliki properti cronExpression yang menentukan jadwal eksekusi. Pemicu sederhana tidak memiliki properti cronExpression; Anda menentukan startTime untuk menunjukkan kapan pemicu berlaku, dan secara opsional endTime.

Properti pemicu adalah sebagai berikut (semua waktu yang tercantum dalam UTC):

Properti Deskripsi
cronExpression Ekspresi cron untuk membuat jadwal eksekusi untuk pemicu, seperti: "Pukul 08.00 setiap Senin sampai Jumat" atau "Pukul 01.30 setiap hari Jumat terakhir setiap bulan". Lihat Membuat ekspresi cron untuk detail selengkapnya.

Menentukan properti ini akan menentukan pemicu sebagai pemicu cron.

Catatan: Jika cronExpression dan startTime/endTime ditentukan, cronExpression akan diprioritaskan.

enabled Tanda yang menunjukkan apakah pemicu diaktifkan untuk dijalankan. Nilainya bisa berupa salah satu dari berikut ini:
  • true. Pemicu diaktifkan untuk dieksekusi.
  • false. Pemicu dinonaktifkan — pemicu tidak akan dijalankan.
endTime Waktu dalam format epoch saat jadwal pemicu tidak lagi berlaku.
group Jenis server tempat pemicu akan dieksekusi. Misalnya, jika pemicu seharusnya dijalankan di server pengelolaan, nilainya harus ditetapkan ke management-server. Jika pemicu seharusnya dijalankan di server pemrosesan pesan, nilainya harus ditetapkan ke message-processor.
id Identifikasi pemicu.
jobId Identifikasi tugas yang akan dieksekusi.
name Nama unik yang digunakan untuk mengidentifikasi pemicu.
priority Prioritas eksekusi relatif pemicu jika beberapa pemicu dijadwalkan untuk dieksekusi secara bersamaan. Makin rendah nilainya, makin tinggi prioritasnya. Misalnya, jika dua pemicu dijadwalkan untuk dijalankan secara bersamaan, dan jika satu pemicu memiliki prioritas 1 dan pemicu lainnya memiliki prioritas 2, pemicu dengan prioritas 1 akan dijalankan terlebih dahulu.

Properti ini hanya berlaku jika beberapa pemicu memiliki waktu eksekusi yang sama persis.

startTime Hanya berlaku untuk pemicu sederhana.

Waktu dalam format epoch saat jadwal pemicu berlaku.

Catatan: Jika cronExpression dan startTime/endTime ditentukan, cronExpression lebih diprioritaskan.

suiteId Tanda yang menentukan apakah notifikasi merupakan bagian dari rangkaian notifikasi tingkat sistem atau tingkat default. Nilai yang valid adalah DEFAULT atau SYSTEM, atau Anda dapat menentukan nama suite unik Anda sendiri.
triggerDataMap Kunci kunci, custom_lock_key, yang mencegah beberapa server mengeksekusi tugas yang sama secara bersamaan.

Membuat ekspresi cron

Ekspresi cron adalah string yang terdiri dari enam atau tujuh kolom yang dipisahkan oleh spasi putih. Ekspresi ini mewakili kumpulan waktu, biasanya sebagai jadwal untuk menjalankan rutinitas. Ekspresi cron yang ditentukan dalam properti cronExpression pemicu digunakan untuk menjadwalkan eksekusi pemicu tersebut.

Ekspresi cron memiliki format berikut: s m h dm m dw y

Dengan keterangan:

Kolom Deskripsi Wajib Nilai yang diizinkan Karakter Khusus yang Diizinkan
s Detik Ya 0-59 , - * /
m Menit Ya 0-59 , - * /
h Jam Ya 0-23 , - * /
dm Tanggal Ya 0-31 , - * ? / D
m Bulan Ya 1-12 atau JAN-DES , - * /
dw Hari Ya 1-7 atau SUN-SAT , - * ? / L #
y Tahun Tidak Kosong atau 1970-2099 , - * /

Karakter khusus ini didefinisikan sebagai berikut:

Karakter khusus Deskripsi
* Digunakan untuk memilih semua nilai dalam kolom. Misalnya, * di kolom menit berarti setiap menit.
? Digunakan untuk menentukan sesuatu di salah satu dari dua kolom tempat karakter diizinkan, tetapi tidak di kolom lainnya. Misalnya, jika Anda ingin pemicu dieksekusi pada hari tertentu dalam sebulan (misalnya, tanggal 10), tetapi tidak peduli pada hari apa, tentukan 10 pada kolom hari dalam sebulan, dan ? pada kolom hari dalam seminggu.
- Digunakan untuk menentukan rentang. Misalnya, 10-12 di kolom jam berarti jam 10, 11, dan 12.
, Digunakan untuk menentukan nilai tambahan. Misalnya, SEN,RAB,JUM dalam kolom hari dalam seminggu berarti hari Senin, Rabu, dan Jumat.
/ Digunakan untuk menentukan penambahan. Misalnya, 0/15 di kolom detik berarti detik adalah 0, 15, 30, dan 45. Dan 5/15 di bidang detik berarti detik 5, 20, 35, dan 50. Anda juga dapat menentukan / setelah karakter ". Melakukan hal itu sama dengan menempatkan 0 sebelum /. Menentukan 1/3 pada kolom hari dalam sebulan berarti mengeksekusi setiap 3 hari yang dimulai dari hari pertama setiap bulan.
L Memiliki arti yang berbeda di masing-masing dari dua bidang yang diizinkan. L di kolom hari dalam bulan berarti hari terakhir dalam sebulan, yaitu hari ke-31 untuk Januari, atau hari ke-28 untuk Februari pada tahun-tahun bukan kabisat. Di kolom hari dalam seminggu, L berarti hari terakhir dalam seminggu, yaitu, 7 atau SAT. Namun, jika digunakan dalam kolom hari dalam seminggu setelah nilai lain, artinya xxx hari terakhir dalam bulan tersebut. Misalnya, 6L berarti hari Jumat terakhir setiap bulan.
W Digunakan untuk menentukan hari kerja (Senin-Jumat) yang paling dekat dengan hari tertentu. Misalnya, jika Anda menentukan 15 W pada kolom hari dalam sebulan, artinya hari kerja terdekat dengan tanggal 15 pada bulan tersebut. Jadi, jika tanggal 15 adalah hari Sabtu, pemicu akan dijalankan pada hari Jumat tanggal 14. Jika tanggal 15 adalah hari Minggu, pemicu akan dijalankan pada hari Senin tanggal 16. Jika tanggal 15 adalah Selasa, maka hari Selasa tanggal 15 akan dijalankan. Namun, jika Anda menentukan 1 W untuk hari dalam sebulan, dan yang pertama adalah hari Sabtu, pemicu akan dijalankan pada hari Senin tanggal 3 karena tidak akan "melompat" melewati batas hari dalam sebulan. Karakter W hanya dapat ditentukan jika hari adalah satu hari, bukan rentang atau daftar hari.
# Digunakan untuk menentukan XXX hari ke-n dalam sebulan. Misalnya, nilai 6#3 pada kolom hari dalam seminggu berarti hari Jumat ketiga dalam sebulan (hari 6 = Jumat dan #3 = hari ke-3 dalam bulan tersebut). Contoh lainnya: 2#1 = hari Senin pertama setiap bulan, 4#5 = hari Rabu kelima setiap bulan.

Berikut ini beberapa contoh ekspresi cron (semuanya yang tercantum dalam UTC):

Ekspresi cron Jadwal eksekusi
0 0 12 * * ? pukul 12.00 (tengah hari) setiap hari.
0 15 10 * * ? 2013 pukul 10.15 setiap hari selama tahun 2013.
0 10,44 14 ? 3 RAB 14:10 dan 14:44 setiap hari Rabu di bulan Maret.
0 15 10 ? * 6L 2013-2015 pukul 10.15 pada hari Jumat terakhir setiap bulan selama tahun 2013, 2014, dan 2015.
0 15 10 ? * 6#3 10.15 pada hari Jumat ketiga setiap bulan.

Melihat tugas terjadwal menggunakan API

Anda dapat melihat semua tugas yang saat ini dijadwalkan dengan mengajukan permintaan GET ke /triggers?orgid={org_name}.

Contoh:

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

Berikut adalah contoh responsnya:

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

Anda juga dapat melihat tugas terjadwal tertentu dengan mengajukan permintaan GET ke /triggers/{trig_id}, dengan {trig_id} adalah identifikasi pemicu tugas, seperti yang dijelaskan dalam Ringkasan tugas terjadwal. Contoh:

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

Berikut adalah contoh responsnya:

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

Memperbarui tugas terjadwal menggunakan API

Anda dapat memperbarui tugas terjadwal dengan mengubah properti pemicunya. Misalnya, Anda mungkin perlu mengubah jadwal eksekusi pemicu.

Untuk tugas pemicu cron (yaitu, tugas yang menyertakan nilai ekspresi cron), Anda hanya dapat mengubah nilai cronExpression dan properti yang diaktifkan. Perubahan lainnya akan diabaikan. Untuk tugas yang tidak menentukan nilai ekspresi cron, Anda dapat mengubah properti lain, seperti startTime atau priority.

Untuk memperbarui tugas terjadwal, berikan permintaan PUT ke /triggers/{trig_id}, dengan {trig_id} adalah identifikasi pemicu tugas, seperti yang dijelaskan di Ringkasan tugas terjadwal. Saat melakukan pembaruan, Anda harus menentukan setelan yang diperbarui dan ID pemicu dalam isi permintaan.

Misalnya, permintaan berikut memperbarui ekspresi cron untuk tugas Perpanjangan Paket Tarif Developer Baru agar dijalankan setiap hari pada pukul 05.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

Menonaktifkan dan mengaktifkan kembali tugas terjadwal menggunakan API

Untuk menonaktifkan tugas terjadwal, tetapkan nilai properti enabled pemicunya ke false. Contoh:

$ 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

Untuk mengaktifkan kembali tugas yang dinonaktifkan, tetapkan nilai properti enabled dalam pemicunya ke true.

Langkah berikutnya

Sebaiknya sinkronkan ulang secara berkala dengan monetisasi organisasi Anda serta developer, aplikasi, dan produk apa pun yang Anda buat menggunakan Layanan Edge API. Pelajari caranya di Menyinkronkan data Apigee Edge dengan monetisasi.