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 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 5 detik setelah tengah malam MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Pengupdate XeFeed Mendapatkan nilai tukar dalam dolar AS untuk setiap mata uang yang didukung. Setiap hari pada detik ke-1 setelah tengah malam MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Memperpanjang Paket Tarif Developer Mengalihkan 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 Penerusan Transaksi Catatan: Tugas ini sudah 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 saldo prabayar/batas kredit pascabayar ke tabel audit, lalu mengurangi penggunaan saat ini dari akun developer dan mengembalikan saldo penggunaan ke nol. Hari pertama setiap bulan pada 5 detik setelah 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 3 detik setelah 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 total semua transaksi untuk setiap seperempat jam. 1 menit setelah setiap seperempat jam MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Memuat ulang konfigurasi notifikasi Mengindeks ulang semua kondisi notifikasi. Setiap 5 menit MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Mengirim notifikasi email Mengirim notifikasi email yang terkumpul 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 dieksekusi) 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 mengetahui informasi selengkapnya, lihat Menyiapkan notifikasi.

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

Catatan: Notifikasi hanya dikirim satu kali, terlepas dari apakah Anda mengonfigurasi cronExpression yang menyebabkan tugas dijalankan beberapa kali.

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. Dijalankan satu kali — pada hari tugas diaktifkan pukul 21.00.

Catatan: Notifikasi hanya dikirim satu kali, terlepas dari apakah Anda mengonfigurasi cronExpression yang menyebabkan tugas dijalankan beberapa kali.

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

Catatan: Notifikasi hanya dikirim satu kali, terlepas dari apakah Anda mengonfigurasi cronExpression yang menyebabkan tugas dijalankan beberapa kali.

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

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

Selain itu:

  • Jika paket tarif adalah paket standar, semua developer akan mendapatkan notifikasi.
  • Jika paket tarifnya adalah kategori developer, hanya developer dalam kategori tersebut yang akan diberi tahu.
  • Jika paket tarifnya adalah paket tarif developer, hanya developer tertentu tersebut 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 Mengirim notifikasi kepada developer yang terpengaruh bahwa Persyaratan dan Ketentuan baru atau yang direvisi telah dipublikasikan (dan developer belum menyetujuinya). Dijalankan 30, 7, dan 1 hari sebelum tanggal mulai Persyaratan dan Ketentuan baru atau yang direvisi, pada pukul 21.00. MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Paket tarif yang akan berakhir Mengirim notifikasi kepada developer yang terpengaruh untuk memberikan peringatan awal bahwa paket tarif akan berakhir. Dijalankan 30, 7, dan 1 hari sebelum masa berlaku paket tarif berakhir, 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 mengetahui informasi selengkapnya tentang API yang dijelaskan di bagian ini, lihat Tugas terjadwal dalam referensi API.

Mengonfigurasi pemicu

Penjadwal mengandalkan pemicu untuk menjalankan tugas. Tugas terjadwal dijalankan saat pemicu terkait dijalankan. Properti pemicu mengonfigurasi eksekusi tugas, dan dengan menetapkan nilai properti ini, Anda dapat mengontrol karakteristik eksekusi tugas seperti kapan tugas dieksekusi, 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 mulai berlaku, dan opsional endTime.

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

Properti Deskripsi
cronExpression Ekspresi cron untuk membuat jadwal eksekusi pemicu, seperti: "Pada pukul 08.00 setiap hari Senin hingga Jumat" atau "Pada pukul 01.30 setiap hari Jumat terakhir dalam sebulan". Lihat Membangun ekspresi cron untuk mengetahui 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 dieksekusi. Nilainya bisa berupa salah satu dari berikut:
  • 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 dieksekusi di server pengelolaan, nilainya harus ditetapkan ke management-server. Jika pemicu seharusnya dieksekusi di server pemrosesan pesan, nilai 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 pada waktu yang sama. Makin rendah nilainya, makin tinggi prioritasnya. Misalnya, jika dua pemicu dijadwalkan untuk dieksekusi pada waktu yang sama, dan jika satu pemicu memiliki prioritas 1 dan pemicu lainnya memiliki prioritas 2, pemicu dengan prioritas 1 akan dieksekusi 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 mulai berlaku.

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

suiteId Flag 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 rangkaian pengujian unik Anda sendiri.
triggerDataMap Kunci lock, custom_lock_key, yang mencegah beberapa server menjalankan tugas yang sama pada saat yang sama.

Membangun ekspresi cron

Ekspresi cron adalah string yang terdiri dari enam atau tujuh kolom yang dipisahkan oleh spasi kosong. Ekspresi mewakili serangkaian 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:

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 , - * ? / L W
m Bulan Ya 1-12 atau JAN-DEC , - * /
dw Hari Ya 1-7 atau SUN-SAT , - * ? / L #
y Tahun Tidak Kosong atau 1970-2099 , - * /

Karakter khusus 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 dijalankan pada hari tertentu dalam sebulan (misalnya, tanggal 10), tetapi tidak peduli hari apa dalam seminggu, tentukan 10 di kolom hari dalam sebulan, dan ? di 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 di kolom hari dalam seminggu berarti hari Senin, Rabu, dan Jumat.
/ Digunakan untuk menentukan penambahan. Misalnya, 0/15 di kolom detik berarti detik 0, 15, 30, dan 45. Dan 5/15 di kolom detik berarti detik ke-5, 20, 35, dan 50. Anda juga dapat menentukan / setelah karakter ". Tindakan ini setara dengan memiliki 0 sebelum /. Menentukan 1/3 di kolom hari dalam sebulan berarti menjalankan setiap 3 hari mulai pada hari pertama dalam sebulan.
L Memiliki arti yang berbeda di setiap dua kolom tempat kata tersebut diizinkan. L di kolom hari dalam bulan berarti hari terakhir dalam bulan, yaitu hari ke-31 untuk Januari, atau hari ke-28 untuk Februari pada tahun non-kabisat. Di kolom hari dalam seminggu, L berarti hari terakhir dalam seminggu, yaitu 7 atau SAB. Namun, jika digunakan di kolom hari dalam seminggu setelah nilai lain, L berarti hari xxx terakhir dalam sebulan. Misalnya, 6L berarti hari Jumat terakhir dalam sebulan.
W Digunakan untuk menentukan hari kerja (Senin-Jumat) terdekat dengan hari yang ditentukan. Sebagai contoh, jika Anda menentukan 15W di kolom hari dalam sebulan, berarti hari kerja terdekat dengan tanggal 15 dalam sebulan. 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 hari Selasa, maka pembayaran akan dilakukan pada hari Selasa tanggal 15. Namun, jika Anda menentukan 1W untuk hari dalam sebulan, dan tanggal 1 adalah hari Sabtu, pemicu akan dieksekusi pada hari Senin tanggal 3 karena tidak akan "melompati" batas hari dalam sebulan. Karakter W hanya dapat ditentukan jika hari dalam sebulan adalah satu hari, bukan rentang atau daftar hari.
# Digunakan untuk menentukan hari XXX ke-n dalam bulan. Misalnya, nilai 6#3 di kolom hari dalam seminggu berarti hari Jumat ketiga dalam sebulan (hari 6 = Jumat dan #3 = yang ke-3 dalam sebulan). Contoh lainnya: 2#1 = Senin pertama dalam sebulan, 4#5 = Rabu kelima dalam sebulan.

Berikut beberapa contoh ekspresi cron (semua waktu yang tercantum menggunakan zona waktu UTC):

Persamaan cron Jadwal eksekusi
0 0 12 * * ? Pukul 12.00 (tengah hari) setiap hari.
0 15 10 * * ? 2013 10.15 setiap hari selama tahun 2013.
0 10,44 14 ? 3 RAB 14.10 dan 14.44 setiap hari Rabu pada bulan Maret.
0 15 10 ? * 6L 2013-2015 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 dijadwalkan saat ini dengan mengirimkan 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 respons:

[ {
  "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 mengirimkan 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 respons:

{
    "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 properti cronExpression dan enabled. 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, kirim permintaan PUT ke /triggers/{trig_id}, dengan {trig_id} adalah identifikasi pemicu tugas, seperti yang dijelaskan dalam Ringkasan tugas terjadwal. Saat melakukan pembaruan, Anda harus menentukan di isi permintaan setelan yang diperbarui dan ID pemicu.

Misalnya, permintaan berikut memperbarui ekspresi cron untuk tugas Perpanjangan Paket Tarif Developer Baru agar berjalan 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 pemicunya ke true.

Langkah berikutnya

Sebaiknya lakukan sinkronisasi ulang secara berkala dengan monetisasi organisasi Anda dan semua developer, aplikasi, dan produk yang Anda buat menggunakan Layanan API Edge. Pelajari caranya di Menyinkronkan data Apigee Edge dengan monetisasi.