มั่นใจว่างานตามกำหนดเวลาทำงานจริง

แบ็กอัป อีเมล การนำเข้า โพสต์ตั้งเวลา งานส่วนใหญ่ของเว็บไซต์ทำงานเบื้องหลังตามกำหนดเวลา LayerAssist ตรวจว่างานเหล่านี้ทำงานอยู่ หาว่าทำไมงานไหนไม่ทำงาน แล้วทำให้กลับมาทำงานอีกครั้ง

สรุปสั้น ๆ

  • ในแชตในแชต จะแสดงรายการงาน cron อ่านล็อก ตรวจตัวจัดตารางของ WordPress และโพรเซสเบื้องหลัง แล้วแก้งานที่ไม่ทำงาน
  • ระบบอัตโนมัติในฐานะระบบอัตโนมัติของคุณเอง สามารถตรวจทุกเช้าว่างานกลางคืนทำงานแล้ว เช่น มีแบ็กอัปใหม่ และบอกคุณถ้ามีงานไหนไม่ทำงาน
  • ตัวเฝ้าระวังในตัวถ้า queue worker ของคุณทำงานเป็นบริการ ตัวเฝ้าระวังบริการในตัวจะแจ้งเตือนทันทีที่มันหยุด
  • ยังไม่มียังไม่มีตัวเฝ้าระวัง “heartbeat” ในตัวสำหรับงาน cron

งานเบื้องหลังล้มเหลวโดยไม่มีเสียงใด ๆ

งาน cron และคิวทำงานตอนที่ไม่มีใครดู ทั้งแบ็กอัปกลางคืน อีเมลใบแจ้งหนี้ การนำเข้าสินค้า การล้างแคช และโพสต์ตั้งเวลา เมื่องานหนึ่งหยุด ไม่มีหน้าข้อผิดพลาดขึ้นมา งานนั้นแค่ไม่ได้ทำ

คุณจะรู้ทีหลัง และรู้ในแบบที่เจ็บที่สุด แบ็กอัปที่ต้องใช้เก่าไปสามเดือนแล้ว ลูกค้าไม่ได้รับใบแจ้งหนี้ บทความตอนเช้าไม่เคยถูกเผยแพร่

สัญญาณว่างานตามกำหนดเวลาไม่ทำงาน

  • ไม่มีการสร้างแบ็กอัป หรือเก่ากว่าที่ควรเป็น
  • โพสต์ตั้งเวลาขึ้น “พลาดกำหนดเวลา”
  • อีเมลหรือการส่งออกรายวันหยุดไป
  • คิวยาวขึ้นเรื่อย ๆ และงานค้างอยู่ที่ “รอดำเนินการ”

ทำไมงาน cron และคิวถึงหยุด

ตัวจัดตารางของ WordPress ทำงานเฉพาะเมื่อมีผู้เข้าชม

WP-Cron ทำงานเมื่อมีคนเข้าเว็บ บนเว็บที่คนเข้าน้อย หรืออยู่หลังแคช งานที่ตั้งเวลาไว้จะทำงานช้าหรือไม่ทำงานเลย

พาธหรือสภาพแวดล้อมผิด

งานที่รันด้วยมือได้ แต่ล้มเหลวเมื่อรันตามตาราง เพราะเวอร์ชัน PHP ต่างกัน พาธหายไป หรือสคริปต์ถูกย้าย

โพรเซส worker หยุด

queue worker ต้องทำงานตลอดเวลา หลังระบบล่ม การ deploy หรือการรีสตาร์ต ไม่มีอะไรเปิดมันกลับมา

งานที่ล่มหรือซ้อนกัน

งานที่ล้มเหลวหนึ่งงาน ล็อกที่ไม่เคยถูกปล่อย หรืองานที่ใช้เวลานานกว่ารอบของมัน จะบล็อกทุกอย่างที่ตามหลัง

LayerAssist ทำให้งานเบื้องหลังทำงานต่อไปอย่างไร

ตรวจตารางเวลา ล็อก และผลลัพธ์ คือสิ่งที่งานควรสร้างขึ้นมา

แสดงรายการสิ่งที่ตั้งเวลาไว้

อ่าน crontab ของเซิร์ฟเวอร์ งาน cron ในแผงควบคุมโฮสติ้ง และเหตุการณ์ที่ตั้งเวลาไว้ของ WordPress แล้วอธิบายทีละรายการ

ตรวจว่างานทำงานจริง

มองหาหลักฐาน เช่น บันทึกในล็อก ไฟล์แบ็กอัปใหม่ อีเมลที่ส่งแล้ว หรือคิวที่ว่างแล้ว

หาว่าทำไมงานล้มเหลว

รันคำสั่งของงานแบบเดียวกับที่ cron รัน อ่านข้อผิดพลาด แล้วแก้พาธ เวอร์ชัน PHP หรือสิทธิ์

ตั้งค่าให้ถูกต้อง

เปลี่ยน WP-Cron ไปใช้ cron จริงของเซิร์ฟเวอร์ ตั้ง worker ที่รีสตาร์ตเองได้ และเพิ่มการบันทึกล็อกเพื่อให้ความล้มเหลวทิ้งร่องรอยไว้

ตัวอย่าง: แบ็กอัปที่หยุดสร้างอย่างเงียบ ๆ

  1. คุณ

    ช่วยตรวจหน่อยได้ไหมว่าแบ็กอัปกลางคืนของเรายังทำงานอยู่? คิดว่าไม่มีใครดูมาหลายเดือนแล้ว

  2. สิ่งที่มันตรวจสอบ

    • crontab: ตั้งแบ็กอัปไว้ทุกคืนเวลา 02:00
    • ไฟล์แบ็กอัปล่าสุด: อายุ 74 วัน
    • ล็อก cron: งานล้มเหลวด้วย “mysqldump: command not found”
    • สาเหตุ: อัปเดตเซิร์ฟเวอร์ย้ายเครื่องมือไปที่อื่น แต่งานยังใช้พาธเดิม
  3. สิ่งที่มันเปลี่ยนแปลง

    แก้พาธในสคริปต์แบ็กอัป รันหนึ่งครั้ง และตั้งให้ส่งอีเมลเมื่อล้มเหลว

  4. LayerAssist

    แบ็กอัปของคุณไม่ได้ทำงานมา 74 วันแล้ว เพราะอัปเดตเซิร์ฟเวอร์ย้ายเครื่องมือฐานข้อมูลที่สคริปต์ใช้ ฉันแก้พาธและเพิ่งสร้างแบ็กอัปไป เสร็จเรียบร้อยและไฟล์อยู่ครบ ถ้าต้องการ ฉันตรวจทุกเช้าได้ว่ามีสำเนาใหม่

สิ่งที่คุณได้รับ

  • หลักฐานว่างานทำงานจริง ไม่ใช่แค่ถูกตั้งเวลาไว้
  • เจอความล้มเหลวในเช้าวันถัดไป ไม่ใช่หลายเดือนต่อมา
  • งานตั้งเวลาของ WordPress ที่ทำงานตรงเวลา
  • queue worker ที่กลับมาหลังระบบล่ม

สถานการณ์จริง

ร้าน WooCommerce ที่งานตั้งเวลาค้าง

งานตั้งเวลาหลายพันรายการค้างรอ และอีเมลส่งช้า LayerAssist หางานที่ล้มเหลว ทำให้คิวเดินต่อ และตั้ง cron จริง

แอป Laravel ที่มีคิว

หลัง deploy queue worker ไม่เคยเปิดกลับมาอีกเลย LayerAssist ย้ายไปอยู่ใต้ supervisor ให้รีสตาร์ตเองได้ และแนะนำตัวเฝ้าระวังบริการ

เว็บข่าวที่มีบทความตั้งเวลา

บทความที่ตั้งไว้ 6:00 น. ขึ้นตอนเที่ยง เพราะหลังแคช WP-Cron ทำงานเฉพาะเมื่อแคชหมดอายุ cron ของเซิร์ฟเวอร์แก้ปัญหานี้ได้

วิธีตรวจงาน cron ด้วย LayerAssist

  1. เชื่อมต่อเซิร์ฟเวอร์หรือโฮสติ้ง

    SSH ให้ภาพทั้งหมด แผงควบคุมโฮสติ้งก็แสดงงาน cron ของตัวเองได้

  2. ขอให้ตรวจ

    ในแชต: “งานตามกำหนดเวลาของเราทำงานอยู่ไหม?” หรือ “ทำไมการนำเข้าเมื่อคืนล้มเหลว?”

  3. ให้แก้งาน

    จะหาสาเหตุ แก้ไข และรันงานหนึ่งครั้งเพื่อพิสูจน์ว่าทำงานได้

  4. ทำให้เป็นการตรวจตอนเช้า

    ขอให้ตรวจรายวันในรูปแบบระบบอัตโนมัติของคุณเอง และเพิ่มตัวเฝ้าระวังบริการสำหรับ queue worker ที่ทำงานเป็นบริการ

คำถามเกี่ยวกับการเฝ้าระวังงาน cron

cron คือตัวจัดตารางของเซิร์ฟเวอร์เอง ทำงานตรงเวลา WP-Cron คือตัวจัดตารางที่มากับ WordPress และทำงานเฉพาะเมื่อมีคนเข้าเว็บ เพื่อการตั้งเวลาที่เชื่อถือได้ LayerAssist สามารถรัน WP-Cron จาก cron จริงของเซิร์ฟเวอร์

ถัดไป: การอัปเดต WordPress

เริ่มต้น $9 ต่อเดือน · 14 วันให้เปลี่ยนใจ

ครั้งหน้าที่มีอะไรเสีย คุณจะรู้ทันทีว่าต้องถามใคร

เพิ่มเว็บไซต์ของคุณและถามคำถามแรกได้วันนี้ ไม่ถูกใจ? ยกเลิกภายใน 14 วันแล้วรับเงินที่ชำระครั้งแรกคืน โดยหักเฉพาะค่างาน AI ที่ใช้ไป

ฟรี 7 วัน · ไม่ต้องใช้บัตรเครดิต · ไม่ต้องมีความรู้ด้านเทคนิคเลย