Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 22130|Jawab: 3

[Bingkai] . Ketahanan .NET dan penanganan kegagalan sementara Strategi percobaan ulang Polly

[Salin tautan]
Diposting pada 28/05/2019 23.54.53 | | | |
Posting ini terakhir diedit oleh Kongcida pada 2019-5-29 11:16

kata pengantar
Dalam sebuah proyek, akan ada masalah dengan operasi proyek karena alasan yang tidak terkendali. Misalnya, kegagalan server, kerusakan layanan, pemadaman jaringan, dll. Menemukan beberapa kesalahan yang dapat dicoba ulang, kita dapat menggunakan Polly —— . Pustaka Penanganan Kesalahan Elastis dan Transien .NET. Alamat situs web resmi proyek (Login hyperlink terlihat.)。 Hari ini artikel ini akan mendokumentasikan strategi percobaan ulang Polly yang buruk.


Lingkungan & Alat


>VS 2017
>Sistem Windows 10


Teks


1: Buat aplikasi konsol baru.

2: Kutip Polly. Tersedia untuk diunduh dalam paket NuGet

3: Tempel kode



4: F6 menghasilkan. Kemudian temukan file .exe yang dihasilkan di bawah folder debug – > klik dua kali untuk menjalankan.



Anda dapat melihat pesan output: Dicoba ulang tiga kali.

Saat F5 sedang men-debug, Anda juga dapat melihat bahwa metode ini telah dilakukan tiga kali.


Strategi percobaan ulang Polly dijelaskan secara rinci

1: Jenis pengecualian


Dalam kode ini, :handle berisi jenis pengecualian yang akan dicoba ulang. Artinya, ketika kode yang dieksekusi menghasilkan pengecualian tertentu, fungsi coba lagi dijalankan. Jika tidak, tidak ada percobaan ulang yang akan dilakukan. Karena beberapa pengecualian tidak memerlukan percobaan lagi.

Tentu saja, kita dapat mengisi sejumlah jenis pengecualian tertentu di sini untuk dicoba kembali.



DivideByZeroException di sini mewakili pengecualian yang mencoba membagi dengan nol.
SqlException menunjukkan pengecualian yang dimunculkan saat Sql Server mengembalikan kesalahan atau peringatan. Misalnya, kegagalan koneksi database, kesalahan eksekusi SQL, dll.
SmtpException menunjukkan pengecualian yang diajukan oleh layanan email. Misalnya, pengiriman gagal, koneksi jaringan gagal, dan informasi akun email tidak normal.

Untuk jenis pengecualian tertentu, silakan lihat dokumentasi resmi Microsoft:



2: Jenis coba lagi

1) Jenis percobaan ulang pertama adalah jumlah percobaan ulang yang diberikan secara langsung. Kode berikut hanya dicoba ulang 3 kali.

Kita dapat memanggil tindakan relevan yang dilakukan pada setiap percobaan lagi saat mencoba lagi. Kode berikut adalah komisi lain nanti. Saat melakukan percobaan ulang, jumlah percobaan ulang dan alasan pengecualian dicetak.



Kita juga dapat terus mencoba kode sampai berhasil.



2) Jenis percobaan ulang kedua adalah mencoba lagi secara berkala. Kode berikut berarti mencoba lagi setiap 2 detik, 7 detik, atau 10 detik. Coba lagi hingga 10 detik. Jika eksekusi tidak berhasil, akhiri percobaan lagi.



Kita juga dapat mencoba lagi secara berkala sampai percobaan ulang berhasil. Ini membutuhkan perhitungan fungsi.



Kode di atas mengacu pada percobaan ulang daya tidak langsung 2. Misalnya, jika eksekusi gagal, pertama kali akan dicoba lagi dengan interval 2 detik, kedua kalinya akan dicoba lagi pada interval 4 detik, dan ketiga kalinya akan dicoba lagi pada interval 8 detik......... Dan seterusnya. Sampai eksekusi berhasil.



Epilog


Catatan: Jenis pengecualian dalam Pegangan kode di atas harus diisi sesuai dengan situasi aktual dalam proyek Anda yang sebenarnya. Tidak semua pengecualian memerlukan percobaan ulang.

Jenis pengecualian adalah kelas dasar untuk semua pengecualian. Yang terbaik adalah tidak mengisi ini di pegangan, jika tidak, itu akan memiliki konsekuensi yang sangat serius.














Mantan:. Integrasi bersih Nilai pengembalian PayPal IPN selalu TIDAK VALID
Depan:C# Penggunaan kata kunci hasil
Diposting pada 29/05/2019 09.17.54 |
Saya mengimplementasikan mekanisme coba ulang sendiri di AOP, dan pada akhirnya, saya menemukan bahwa perpustakaan Polly dapat memenuhi kebutuhan saya, tetapi fungsi saya telah diimplementasikan, dan saya mengacu pada perpustakaan pihak ketiga, yang mungkin memiliki beberapa kode yang tidak berguna di dalamnya, yang tidak dapat mengoptimalkan sistem saya, sehingga tidak berguna untuk saat ini.

Terlampir adalah kode saya:



Ketika saya punya waktu, saya juga akan melihat Polly
Diposting pada 29/05/2019 09.22.01 |
Xiao Zhaozha Dipaparkan pada 2019-5-29 09:17
Saya mengimplementasikan mekanisme percobaan ulang sendiri di aop, dan pada akhirnya, saya menemukan bahwa perpustakaan Polly dapat memenuhi kebutuhan saya, tetapi fungsi saya telah diterapkan, dan pengenalan ...

Tidak ada salahnya melakukan sendiri kebutuhan kecil seperti ini
Dan Anda harus menunggu waktu berikutnya untuk mencoba lagi
Diposting pada 29/05/2019 09.29.22 |
Angin dipaparkan pada 2019-5-29 09:22
Tidak ada salahnya melakukan sendiri kebutuhan kecil seperti ini
Dan haruskah Anda menunggu waktu berikutnya untuk mencoba lagi?

Tidak, pengecualian harus disebabkan oleh konkurensi, penyisipan data, pembaruan, dan konflik penghapusan, tetapi harus ada yang akan berhasil dieksekusi, saya ....... Kode yang dihilangkan membungkus transaksi, dan pengecualian akan secara otomatis diputar kembali. Pada percobaan ulang kedua, konfliknya hilang, jadi saya tidak menetapkan waktu tunggu.
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com