ຍົກເລີກຄຳຮ້ອງ .NET HttpClient ຜ່ານພຣັອກຊີດ້ວຍໂທເຄັນກຳນົດເວລາ
ຍົກເລີກການດຳເນີນງານເຄືອຂ່າຍເອງ ເມື່ອກຳນົດເວລາຂອງພຣັອກຊີໝົດ ແທນທີ່ຈະຢຸດພຽງແຕ່ການລໍຖ້າຂອງຜູ້ເອີ້ນ.
ສົ່ງກຳນົດເວລາໄປໃຫ້ການດຳເນີນງານທີ່ສາມາດຍົກເລີກວຽກເຄືອຂ່າຍໄດ້. ສຳລັບ .NET HttpClient ທີ່ມີຢູ່ແລ້ວ ເຊິ່ງຕັ້ງຄ່າຜ່ານພຣັອກຊີ:
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);ແອັບພລິເຄຊັນສະໜອງ client ແລະ uri. ການໂຫຼດເກີນນີ້ຮັບໂທເຄັນການຍົກເລີກ; ເວລາກຳນົດອ້ອມການລໍຖ້າວຽກຂອງມັນຈະຈຳກັດພຽງແຕ່ການລໍຖ້າຂອງຜູ້ເອີ້ນນັ້ນ. ການສຳຫຼວດທຸງສຳເລັດກໍມີບັນຫາດຽວກັນ: ຜູ້ເອີ້ນສາມາດອອກໄປໄດ້ ໃນຂະນະທີ່ຊັອກເກັດ ແລະ ຜູ້ປະຕິບັດງານຍັງຄົງຕິດພັນຢູ່.
ການຍົກເລີກປະຕິບັດຕາມການຈັດຕັ້ງຂອງລູກຄ້າ ແລະ ເສັ້ນທາງການເຮັດຄວາມສະອາດ. ມັນບໍ່ຮັບປະກັນວ່າທຸກການກະທຳລະດັບຕ່ຳຈະຢຸດຢູ່ຄຳສັ່ງທີ່ແນ່ນອນ. ໃຫ້ເສັ້ນທາງນັ້ນສຳເລັດ ແລະ ປ່ອຍຊັບພະຍາກອນທີ່ການດຳເນີນງານຄອບຄອງ. ລວມການອ່ານເນື້ອທີ່ຄວບຄຸມແຍກຕ່າງຫາກໃນການອອກແບບ; ສຳລັບການດຳເນີນງານ .NET ResponseHeadersRead ສະໄໝໃໝ່, ສົ່ງໂທເຄັນດຽວກັນຜ່ານການອ່ານເນື້ອ. ລູກຄ້າອື່ນສະໜອງສ່ວນຕິດຕໍ່ການຍົກເລີກ, ຢຸດ ແລະ ເຮັດຄວາມສະອາດຂອງຕົນເອງ.
ການລອງໃໝ່ຕ້ອງການຜົນສຳລັບການລອງກ່ອນ. ເກັບຕົວະລະບຸ ແລະ ພຣັອກຊີທີ່ເລືອກ, ຂໍການຍົກເລີກເມື່ອຈຳເປັນ ແລະ ຫຼີກລ່ຽງການສູນເສຍວຽກ ໃນຂະນະທີ່ເລີ່ມຕົວແທນຢ່າງບໍ່ມີຂອບເຂດ. ຖ້າບໍ່ດັ່ງນັ້ນ ຈຸດປາຍທາງທີ່ຊ້າອາດສະສົມວຽກໄວກວ່າທີ່ແອັບພລິເຄຊັນປ່ອຍ.
ຜົນລັບທາງໄກຕ້ອງການການຈັດການແຍກຕ່າງຫາກ. ປາຍທາງອາດໄດ້ຮັບການສົ່ງແລ້ວ ເມື່ອການຍົກເລີກເກີດຂຶ້ນ. ໃຊ້ນະໂຍບາຍການຟື້ນຟູ ຫຼື idempotency ຂອງແອັບພລິເຄຊັນ; ການຢຸດວຽກທ້ອງຖິ່ນບໍ່ໄດ້ຍົກເລີກການກະທຳທາງໄກ.