หมายเหตุ
คำแนะนำในการใช้ตัวจับเวลา
-
สามารถเพิ่มตัวจับเวลาได้ในการเรียกคืน
onXXXX
เท่านั้น ตัวจับเวลาระดับโลกแนะนำให้ตั้งค่าในการเรียกคืนonWorkerStart
และตัวจับเวลาสำหรับการเชื่อมต่อเฉพาะแนะนำในการเรียกคืนonConnect
-
งานที่ถูกเพิ่มเป็นงานตัวจับเวลาจะถูกดำเนินการในกระบวนการปัจจุบัน (ไม่ได้เริ่มกระบวนการหรือเส้นรหัสใหม่) หากงานหนักมาก (โดยเฉพาะงานที่เกี่ยวข้องกับเครือข่าย) อาจทำให้กระบวนการนี้ถูกบล็อก ซึ่งจะไม่สามารถดำเนินการธุรกิจอื่น ๆ ชั่วคราวได้ ดังนั้น ควรทำงานที่ใช้เวลานานในกระบวนการเดียวกัน ตัวอย่างเช่น สร้างกระบวนการหรือหลายกระบวนการเพื่อดำเนินการ
-
กระบวนการปัจจุบันที่ไม่สะดุดกับธุรกิจอื่น ๆ หรือเมื่องานหนึ่งไม่ได้ดำเนินการตามเวลาที่คาดหวัง ตอนนี้ก็มีรอการเสร็จสิ้นการดำเนินการปัจจุบันก่อนที่จะดำเนินการ ซึ่งสามารถทำให้ตัวจับเวลาไม่ทำงานตามช่วงเวลาที่คาดหวังได้ กล่าวคือ ธุรกิจของกระบวนการปัจจุบันถูกดำเนินในโหมดเดียวกัน หากเป็นกระบวนการหลายตัว การดำเนินการงานระหว่างกระบวนการนั้นก็จะทำงานแบบขนานหน้า
-
ควรระมัดระวังในการตั้งตัวจับเวลาในกระบวนการหลายตัว เช่น การโค้ดด้านล่างจะพิมพ์ 5 ครั้งต่อวินาที
$worker = new Worker(); // 5 กระบวนการ $worker->count = 5; $worker->onWorkerStart = function(Worker $worker) { // 5 กระบวนการที่มีตัวจับเวลาอย่างนี้สำหรับแต่ละกระบวนการ Timer::add(1, function(){ echo "hi\r\n"; }); }; Worker::runAll();
หากต้องการให้กระบวนการทำงานตัวจับเวลาเพียงตัวเดียว โปรดดูที่ตัวอย่างที่ 2 ที่จับเวลา:: เพิ่ม ตัวอย่าง 2
-
อาจมีความคลาดเคลื่อนประมาณ 1 มิลลิวินาที
-
ตัวจับเวลาไม่สามารถลบได้ระหว่างกระบวนการ เช่น ตัวจับเวลาที่ถูกตั้งโดยกระบวนการ A ไม่สามารถถูกลบโดยการเรียกใช้ตัวแสดงเวลา:: del ของกระบวนการ B ได้
-
ไอดีตัวจับเวลาอาจซ้ำกันระหว่างกระบวนการหลายตัว แต่ไอดีตัวจับเวลาที่สร้างขึ้นในกระบวนการเดียวกันจะไม่ซ้ำกัน
-
เปลี่ยนแปลงเวลาระบบภายหลังจะมีผลต่อพฤติกรรมของตัวจับเวลา ดังนั้น หลังจากเปลี่ยนแปลงเวลาระบบแนะนำให้รีสตาร์ทใหม่