Lewati ke konten
LICENTIVO / INTEGRATION

Batasi ekspor perangkat lunak dengan penghitung penggunaan bulanan

Konfigurasikan 500 ekspor per UTC bulan dan biarkan SDK mencadangkan, menjalankan, dan menyelesaikan setiap tugas. Jaga identitas tugas bisnis tetap stabil sehingga percobaan ulang tidak menggandakan biaya atau mengulangi pekerjaan yang telah selesai.

Alur kerja fitur · kesembilan SDKDiperbarui

1. Konfigurasikan penghitung fitur

Aktifkan fitur ekspor pada kebijakan otorisasi dan berikan batas 500 per bulan. Putuskan apakah melebihi batas diblokir atau diizinkan berdasarkan aturan kelebihan penggunaan yang dikonfigurasi pada fitur tersebut.

Penghitung fitur adalah milik lisensi pelanggan. Kuota tersebut terpisah dari perangkat ruang kerja vendor dan kuota berlangganan API. Periode fitur harian dan bulanan menggunakan UTC; periode bulanan direset pada awal bulan kalender UTC berikutnya.

2. Buka satu klien SDK

Salin ID produk dari Konsol > Produk. Buka kunci publik penandatanganan produk yang sama, lalu masukkan semua pasangan ID kunci/kunci publik ke kode inisialisasi untuk mengganti YOUR_PRODUCT_ID, YOUR_KEY_ID, dan YOUR_PUBLIC_KEY. Integrasi cepat juga dapat menghasilkan kode ini. Tidak perlu berkas konfigurasi; SDK memakai https://www.licentivo.com secara bawaan.

Untuk hak normal gunakan RunFeature. Untuk tindakan penggunaan terbatas, gunakan RunMeteredFeature. Pemeriksaan hak lokal yang berhasil tidak membuktikan bahwa kuota online masih ada.

3. Selesaikan aksi bisnis

Pertahankan ID pekerjaan unik sebelum memanggil SDK. Gunakan kembali ID tersebut saat mencoba kembali tugas bisnis yang sama. SDK pertama-tama mencadangkan satu kali penggunaan, lalu memanggil panggilan balik, lalu mengonfirmasi pekerjaan yang berhasil atau membatalkan kegagalan bisnis yang diketahui.

Go · inside a function returning error
// client was opened once at application startup.
// jobID comes from your durable business task record.
jobID := os.Getenv("LICENTIVO_OPERATION_ID")
if jobID == "" {
    return fmt.Errorf("persist a unique task ID before exporting")
}
err := client.RunMeteredFeature(ctx, "export", 1, jobID, func() error {
    // Return success only after the output has been saved.
    return os.WriteFile("licensed-report.txt", []byte("Metered export\n"), 0600)
})
if err != nil {
    return err
}

4. Memulihkan pekerjaan yang terputus

Ketika suatu tugas sudah tercatat berhasil, mencoba kembali ID-nya memungkinkan SDK menyelesaikan akuntansi yang tertunda tanpa menjalankan kembali panggilan baliknya. Jika proses mati saat panggilan balik bisnis berjalan, SDK tidak dapat mengetahui apakah operasi eksternal telah selesai.

Periksa hasil bisnis Anda yang disimpan. Hubungi ResolveMeteredFeature(ctx, jobID, true) untuk konfirmasi kesuksesan, atau false untuk konfirmasi kegagalan. Ini hanya menyelesaikan masalah akuntansi. Jangan pernah mengulangi pembayaran, pengiriman file, atau tindakan tidak dapat diubah lainnya secara membabi buta.

Reservasi default berlangsung selama 15 menit dan dibatasi oleh pengaturan ulang periode UTC. Selesaikan dan selesaikan sebelum habis masa berlakunya; jangan gunakan pembungkus sederhana untuk pekerjaan yang mungkin melebihi masa reservasinya. Tugas bisnis yang dibatalkan memerlukan ID baru jika pelanggan dengan sengaja memulai upaya baru.

5. Verifikasi perilaku balasan

  1. Mulailah dengan batas tes yang kecil. Ekspor yang berhasil harus meningkatkan penggunaan satu unit.
  2. Membuat panggilan balik kembali menjadi kesalahan sebelum menyelesaikan pekerjaan: reservasinya harus dibatalkan.
  3. Coba lagi ID pekerjaan yang berhasil direkam dan pastikan panggilan balik tidak terulang.
  4. Habiskan kuota yang diblokir dan konfirmasikan panggilan balik tidak berjalan. Tampilkan pesan yang jelas dengan waktu reset berikutnya.
  5. Simulasikan tugas yang terputus di lingkungan pengujian Anda dan selesaikan dari catatan bisnis yang tahan lama.

Kesalahan umum

Operasi counter memerlukan konektivitas. Lisensi cache offline saja tidak mengizinkan pencadangan atau penerapan offline. Jangan diam-diam mengubah tindakan terukur yang ditolak menjadi tindakan tidak terukur.

Panggilan Konsumsi langsung langsung dipotong. Gunakan panggilan balik terukur ketika penggunaan hanya dihitung setelah bisnis sukses. Kegagalan jaringan setelah pekerjaan selesai merupakan masalah pemulihan akuntansi; jangan menganggap pekerjaan itu gagal.

ID tugas yang stabil dan SDK jurnal membantu percobaan ulang; mereka tidak menggantikan transaksi bisnis Anda atau penyimpanan hasil yang tahan lama. Jaga agar hasil bisnis dan cache pribadi SDK tetap tersedia selama pemulihan.