ວິທີທີ່ CTRL-C ໃນ Postgres CLI ຍົກເລີກການສອບຖາມແມ່ນ hack-y ຢ່າງບໍ່ຫນ້າເຊື່ອ
ຄຳເຫັນ
Mewayz Team
Editorial Team
The Lingering Ghost of SIGINT: ເປັນຫຍັງການຍົກເລີກການສອບຖາມ Postgres CLI ຮູ້ສຶກຄືກັບການແຮັກ
ສຳລັບຜູ້ພັດທະນາແລະຜູ້ບໍລິຫານຖານຂໍ້ມູນ, ການໂຕ້ຕອບເສັ້ນຄໍາສັ່ງ PostgreSQL (psql) ເປັນຄົນຂັບປະຈໍາວັນທີ່ເຊື່ອຖືໄດ້. ມັນມີອໍານາດ, ຊັດເຈນ, ແລະຢູ່ທົ່ວທຸກແຫ່ງ. ຢ່າງໃດກໍຕາມ, ຫນຶ່ງໃນປະຕິສໍາພັນພື້ນຖານທີ່ສຸດຂອງຕົນ - ການຍົກເລີກການສອບຖາມ runaway ກັບທາງລັດ CTRL-C ທົ່ວໄປ - ຮູ້ສຶກແປກປະຫລາດ. ບໍ່ເຫມືອນກັບຄໍາຮ້ອງສະຫມັກທີ່ທັນສະໄຫມຈໍານວນຫຼາຍທີ່ຄໍາສັ່ງພຽງແຕ່ຢຸດເຊົາການດໍາເນີນການໃນປະຈຸບັນ, ໃນ psql, CTRL-C ຕົວຈິງແລ້ວບໍ່ໄດ້ຍົກເລີກການສອບຖາມໃນເຄື່ອງແມ່ຂ່າຍ. ແທນທີ່ຈະ, ມັນຍົກເລີກ ການລໍຖ້າຂອງລູກຄ້າ ສໍາລັບຜົນໄດ້ຮັບ, ເຮັດໃຫ້ການສອບຖາມທີ່ອາດຈະເກີດຂຶ້ນກັບເຄື່ອງແມ່ຂ່າຍຂອງຖານຂໍ້ມູນ. ພຶດຕິກໍານີ້ບໍ່ແມ່ນແມງໄມ້; ມັນເປັນສິ່ງປອມທີ່ອອກແບບທີ່ເປີດເຜີຍສະຖາປັດຕະຍະກຳຂອງເຄື່ອງມືຂອງພວກເຮົາເປັນຊັ້ນ, ບາງເທື່ອກໍອ່ອນເພຍ. ສໍາລັບທຸລະກິດທີ່ສ້າງຂຶ້ນໃນລະບົບໂມດູລາເຊັ່ນ Mewayz, ຄວາມເຂົ້າໃຈໃນຄວາມເປັນຈິງເຫຼົ່ານີ້ເປັນກຸນແຈສໍາຄັນໃນການອອກແບບຊັ້ນປະຕິບັດການທີ່ເຂັ້ມແຂງ, ຜູ້ໃຊ້ເປັນໃຈກາງ.
ເລື່ອງຂອງສອງຂະບວນການ: ລູກຄ້າທຽບກັບເຊີບເວີ
ຫຼັກຂອງຄວາມຮູ້ສຶກ "hack-y" ມາຈາກສະຖາປັດຕະຍະກຳຂອງ psql. ເມື່ອທ່ານປະຕິບັດການສອບຖາມໃນ psql, ສອງຂະບວນການເອກະລາດແມ່ນເຮັດວຽກ: ຂະບວນການລູກຄ້າ psql ໃນເຄື່ອງທ້ອງຖິ່ນຂອງທ່ານແລະຂະບວນການເຊີຟເວີ postgres ໃນໂຮດຖານຂໍ້ມູນ. ການກົດ CTRL-C ຈະສົ່ງ SIGINT (ສັນຍານລົບກວນ) ໂດຍສະເພາະໄປຫາ psql client process. ວຽກງານທັນທີຂອງລູກຄ້າແມ່ນການຢຸດເຊົາການລໍຖ້າແລະກັບຄືນໄປຫາການກະຕຸ້ນເຕືອນ, ເຊິ່ງມັນເຮັດ. ຢ່າງໃດກໍ່ຕາມ, ເຊີບເວີບໍ່ມີຄວາມຮູ້ກ່ຽວກັບສັນຍານຂ້າງລູກຄ້ານີ້. ຈາກທັດສະນະຂອງມັນ, ການສອບຖາມຍັງຄົງເປັນການດໍາເນີນງານທີ່ຖືກຕ້ອງ. ການຮ້ອງຂໍການຍົກເລີກຕ້ອງໄດ້ຮັບການສື່ສານເປັນຄໍາແນະນໍາໃຫມ່ແຍກຕ່າງຫາກ.
"CTRL-C ໃນ psql ແມ່ນຫນ້ອຍຂອງປຸ່ມ 'ຢຸດ' ແລະຫຼາຍກວ່າ 'ກະລຸນາບໍ່ສົນໃຈຄໍາຮ້ອງຂໍທີ່ຜ່ານມາຂອງຂ້ອຍ' ສັງເກດວ່າເຈົ້າຍື່ນມືໄປຫາຫ້ອງສະຫມຸດທີ່ຫຍຸ້ງຢູ່ໃນຂະນະທີ່ພວກເຂົາມາຮອດເຄິ່ງຫນຶ່ງຂອງ stacks."
ໂປຣໂຕຄອນການຍົກເລີກ: ຄຳຮ້ອງຂໍສຳຮອງ
ດັ່ງນັ້ນ, ການສອບຖາມຕົວຈິງຖືກຍົກເລີກແນວໃດ? ຫຼັງຈາກການຈັດການ SIGINT, ລູກຄ້າ psql ທີ່ມີພຶດຕິກໍາທີ່ດີໄດ້ລິເລີ່ມໂປໂຕຄອນການຍົກເລີກຢ່າງເປັນທາງການຂອງ PostgreSQL. ນີ້ກ່ຽວຂ້ອງກັບການເປີດ ການເຊື່ອມຕໍ່ໃຫມ່ ກັບເຄື່ອງແມ່ຂ່າຍແລະການສົ່ງຂໍ້ຄວາມພິເສດ "ຍົກເລີກການຮ້ອງຂໍ" ທີ່ມີລະຫັດລັບທີ່ກໍານົດຂະບວນການ backend ສະເພາະທີ່ດໍາເນີນການສອບຖາມຂອງທ່ານ. ການຮ້ອງຂໍນີ້ຖືກດໍາເນີນການໂດຍມີບູລິມະສິດຕໍ່າ, ແລະບໍ່ມີການຮັບປະກັນຜົນສໍາເລັດໃນທັນທີ. ຂະບວນການຫຼາຍຂັ້ນຕອນ, ໄຟແລະລືມນີ້ແມ່ນວ່າເປັນຫຍັງພຶດຕິກໍາມີຄວາມຮູ້ສຶກທາງອ້ອມ. ມັນບໍ່ແມ່ນການຂັດຂວາງໂດຍກົງ; ມັນເປັນຄຳອ້ອນວອນທີ່ສຸພາບແລະບໍ່ກົງກັນທີ່ສົ່ງຜ່ານຊ່ອງທາງຫຼັງ.
ຊ່ອງຫວ່າງປະສົບການຂອງຜູ້ໃຊ້ ແລະກໍລະນີຂອບ
ການອອກແບບນີ້ເຮັດໃຫ້ມີຈຸດຂັດແຍ້ງທີ່ຈັບໄດ້ຫຼາຍຈຸດສໍາລັບຜູ້ໃຊ້:
- ຮັບຮູ້ຄວາມບໍ່ຕອບສະໜອງ: ທ່ານກົດ CTRL-C, ໄດ້ຮັບການເຕືອນຂອງທ່ານຄືນມາທັນທີ, ແຕ່ການໂຫຼດຂອງລະບົບຍັງສູງຢູ່ ເພາະວ່າເຊີບເວີຍັງເຮັດວຽກຢູ່.
- ຜົນໄດ້ຮັບທີ່ບໍ່ແນ່ນອນ: ທ່ານບໍ່ມີການຢືນຢັນໃນທັນທີຖ້າການຮ້ອງຂໍການຍົກເລີກນັ້ນໄດ້ຮັບ ຫຼືໃຫ້ກຽດຈາກເຊີບເວີ.
- Connection-Dependent Failure: ຖ້າເຊີບເວີຖືກໄຟວໍ ຫຼືການເຊື່ອມຕໍ່ໃໝ່ສຳລັບການຮ້ອງຂໍການຍົກເລີກລົ້ມເຫລວ, ພະນັກງານການສອບຖາມຕົ້ນສະບັບຈະບໍ່ມີກຳນົດ.
- ບໍ່ກົງກັນທາງຈິດວິທະຍາ: ຄໍາສັ່ງ "abort" ທົ່ວໄປບໍ່ໄດ້ປະຕິບັດການຍົກເລີກແບບ synchronous, ທໍາລາຍຄວາມຄາດຫວັງຂອງຜູ້ໃຊ້ທີ່ສ້າງຂຶ້ນໃນບ່ອນອື່ນໃນສະພາບແວດລ້ອມຄອມພິວເຕີ້.
ການສ້າງພື້ນຖານຄວາມຮູ້ກັບ Mewayz
ລະບົບການດຳເນີນທຸລະກິດທີ່ທັນສະໄໝຕ້ອງລົບລ້າງຄວາມຊັບຊ້ອນທີ່ເປັນພື້ນຖານເຫຼົ່ານີ້ ໃນຂະນະທີ່ເຄົາລົບຂໍ້ຈຳກັດຂອງມັນ. ແພລດຟອມເຊັ່ນ Mewayz, ເຮັດໜ້າທີ່ເປັນລະບົບທຸລະກິດແບບໂມດູລາ, ຈະຫຸ້ມຫໍ່ການໂຕ້ຕອບຂອງຖານຂໍ້ມູນພາຍໃນໂມດູນບໍລິການທີ່ມີການຈັດການ. ສໍາລັບຕົວຢ່າງ, ໂມດູນການສອບຖາມຂໍ້ມູນ Mewayz ບໍ່ພຽງແຕ່ເປີດເຜີຍການເຕືອນ SQL ດິບ; ມັນຈະຫໍ່ມັນດ້ວຍການຄວບຄຸມທີ່ເປັນມິດກັບຜູ້ໃຊ້ - ປຸ່ມ "ຢຸດ" ທີ່ແທ້ຈິງ, ການກວດສອບໄດ້, ການຫມົດເວລາຂອງຄໍາຖາມ, ແລະ dashboards ສະຖານະເວລາຈິງທີ່ສະແດງໃຫ້ເຫັນສິ່ງທີ່ເຮັດວຽກຢູ່ໃນເຄື່ອງແມ່ຂ່າຍ. ນີ້ຍ້າຍປະສົບການຈາກການຈັດການກັບ quirks ໂປໂຕຄອນໄປສູ່ການຄຸ້ມຄອງການດໍາເນີນທຸລະກິດທີ່ຊັດເຈນ, ສາມາດປະຕິບັດໄດ້. ບົດຮຽນຈາກ CTRL-C ຂອງ psql ແມ່ນວ່າເຄື່ອງມືທີ່ຍິ່ງໃຫຍ່ບໍ່ພຽງແຕ່ເປີດເຜີຍຄວາມສາມາດທີ່ມີປະສິດທິພາບ; ພວກເຂົາເຈົ້າອອກແບບການໂຕ້ຕອບ intuitive ແລະເຊື່ອຖືໄດ້ສໍາລັບພວກເຂົາ, ປ່ຽນມໍລະດົກທາງສະຖາປັດຕະເປັນ workflows seamless. ຄວາມເຂົ້າໃຈກ່ຽວກັບການ hack ເປີດເຜີຍໃຫ້ເຫັນໂອກາດທີ່ຈະສ້າງບາງສິ່ງບາງຢ່າງທີ່ດີກວ່າ.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →