Dasar Tamat Masa dan Sandaran
Hadkan tempoh menunggu dan sediakan sandaran yang lancar.
Dasar Tamat Masa dan Sandaran ialah pelajaran Akademi C# percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Akademi C#, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Akademi C# merangkumi sejumlah 4 pelajaran.
Mengapa Tamat Masa Penting
Panggilan yang tidak pernah kembali lebih buruk daripada panggilan yang gagal: panggilan itu menggunakan utas dan sambungan. Strategi tamat masa mengehadkan tempoh sesuatu operasi boleh berjalan sebelum Polly membatalkannya.
Menambah Tamat Masa
Polly v8 menyediakan AddTimeout. Apabila had dilampaui, ia melemparkan TimeoutRejectedException dan membatalkan token asas.
using Polly.Timeout;
var pipeline = new ResiliencePipelineBuilder()
.AddTimeout(TimeSpan.FromSeconds(3))
.Build();Pembatalan Koperatif
Tamat masa berfungsi dengan membatalkan CancellationToken yang dihantar kepada panggilan balik anda. Kod anda mesti mematuhi token tersebut supaya tamat masa berkuat kuasa dengan segera.
await pipeline.ExecuteAsync(async token =>
{
// token is cancelled when the timeout fires
await httpClient.GetAsync(url, token);
});Memberi Tindak Balas terhadap Tamat Masa
Gunakan TimeoutStrategyOptions dengan panggilan balik OnTimeout untuk merekodkan atau mengeluarkan metrik apabila operasi dihentikan lebih awal.
new TimeoutStrategyOptions
{
Timeout = TimeSpan.FromSeconds(3),
OnTimeout = args =>
{
Console.WriteLine($"Timed out after {args.Timeout}");
return default;
}
};Apakah Sandaran?
Sandaran menyediakan hasil gantian apabila operasi gagal, supaya pengguna mendapat pengalaman yang merosot secara terkawal dan bukannya ralat: data cache, nilai lalai atau mesej yang mesra.
Menambah Strategi Sandaran
AddFallback memerlukan saluran paip bertip. Anda mentakrifkan kegagalan yang perlu ditangani dan nilai yang perlu dikembalikan sebagai gantian.
using Polly.Fallback;
var pipeline = new ResiliencePipelineBuilder<string>()
.AddFallback(new FallbackStrategyOptions<string>
{
ShouldHandle = new PredicateBuilder<string>()
.Handle<HttpRequestException>(),
FallbackAction = args =>
Outcome.FromResultAsValueTask("cached default")
})
.Build();Mengembalikan Data Cache sebagai Sandaran
Corak yang lazim ialah menyajikan nilai terakhir yang diketahui baik daripada cache apabila panggilan langsung gagal, supaya aplikasi kekal responsif.
FallbackAction = args =>
{
var cached = _cache.GetLastKnownGood();
return Outcome.FromResultAsValueTask(cached);
}Memantau Sandaran
Panggilan balik OnFallback dicetuskan apabila sandaran dijalankan, sesuai untuk merekodkan bahawa laluan yang merosot telah digunakan.
new FallbackStrategyOptions<string>
{
FallbackAction = args => Outcome.FromResultAsValueTask("default"),
OnFallback = args =>
{
Console.WriteLine("Fallback executed");
return default;
}
};Tamat Masa Bersama Sandaran
Menggabungkan kedua-duanya sangat berkesan: tamat masa mengehadkan tempoh menunggu, manakala sandaran menyediakan nilai apabila tamat masa (atau sebarang kegagalan yang dikendalikan) berlaku, supaya pemanggil tidak pernah tergantung atau terhenti akibat ralat.
Memilih Tamat Masa yang Munasabah
Tetapkan tamat masa berdasarkan kependaman yang realistik serta ruang tambahan, bukannya nilai kecil yang dipilih sewenang-wenangnya. Jika terlalu ketat, panggilan yang sihat akan gagal; jika terlalu longgar, tujuan asalnya tidak tercapai.
Sandaran ialah Pilihan Terakhir
Letakkan sandaran sebagai strategi paling luar supaya ia dapat menangkap kegagalan daripada percubaan semula, pemutus litar dan tamat masa, sekali gus menjamin pemanggil sentiasa menerima hasil yang boleh digunakan.
Semakan Pantas
Uji strategi tamat masa dan sandaran.
Imbas Kembali
Tamat masa mengehadkan tempoh operasi dengan AddTimeout, membatalkan token dan melemparkan TimeoutRejectedException (hormati token itu!). Sandaran menyediakan hasil gantian melalui AddFallback dengan FallbackAction, selalunya dengan menyajikan data cache. Bersama-sama, kedua-duanya memastikan aplikasi kekal responsif: hadkan tempoh menunggu, kemudian beralih dengan baik kepada pengalaman yang merosot. Letakkan sandaran di bahagian paling luar supaya ia menangkap semua kegagalan yang dikendalikan.
Pelajari C# dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 93
- Pelajaran
- 346
Soalan Lazim
Adakah pelajaran “Dasar Tamat Masa dan Sandaran” percuma?
Ya — teks penuh “Dasar Tamat Masa dan Sandaran” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Akademi C#, tingkat taraf kepada CoddyKit PRO. Kursus Akademi C# merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Dasar Tamat Masa dan Sandaran”?
Hadkan tempoh menunggu dan sediakan sandaran yang lancar. Anda berlatih Akademi C# menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Akademi C#?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Akademi C# di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Dasar Tamat Masa dan Sandaran” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Akademi C# ini?
Ya. Setiap pelajaran Akademi C# menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Dasar Percubaan Semula
- Corak Pemutus Litar
- Dasar Tamat Masa dan Sandaran
- Saluran Pemprosesan Ketahanan