[Laravel 5 What is Queue laravel ? อะไรคือคิว Laravel 5]

Queue (คิว) คืออะไร ?​ ถ้ายังไม่รู้ ก็ให้นึกถึงการต่อแถวซื้อของที่เราเรียกกันว่า "คิว" มีความหมายเดียวกัน นั่นคือลำดับขั้นตอนแบบ เข้าก่อนออกก่อนหรือมาก่อนได้ก่อนนั้นเอง
ทำไมต้องใช้ Queue ?​ หากระบบไหนที่มีแนวโน้มว่าจะเพิ่มปริมาณผู้ใช้งานที่มากขึ้นเรื่อย ๆ แน่นอนว่าจะต้องมีการจัดลำดับการทำงานของระบบ เพื่อให้ระบบนั้นไม่รับโหลดมากจนเกินไป เพื่อแบ่งเบาภาระการทำงานของเซิฟเวอร์ อีกอย่างคือเพื่อจัดการจำนวนที่แน่นอนของการทำงาน ตัวอย่างเช่น ต้องการให้ส่งอีเมล์ภายในหนึ่งชั่วโมงให้ถึงลูกค้าแค่ 10,000 รายแค่นั้น อะไรทำนองนั้น


 เริ่มกันเลย สำหรับคนที่ยังไม่ติดตั้ง Laravel 5 Framework ให้ทำการติดตั้งให้เรียบร้อย วิธีการติดตั้ง
คลิ๊กที่นี่  ในองค์ประกอบการทำงาน Queue laravel มีอยู่ด้วยกันหลัก ๆ 4 ส่วนด้วยกันคือ

  1. ส่วนรับหน้าที่การทำงาน [Input JOB]
    • เป็นส่วนรับคำสั่งเริ่มต้นทั้งหมดของกระบวนการโดยส่วนมากจะถูกวางไว้ที่  Controller เป็นหลัก หรือบางทีอาจเขียนผ่าน Global route เลยก็ได้ แต่หน้าที่มันก็คือเป็นจุดเริ่มต้นของกระบวนการทำงานที่ถูกวางไว้แล้วนั่นเอง 
  2. ส่วนทำงาน[Process JOB]
    • เป็นส่วนของ business logic หรือการต่อ 3rd party API หรือ บันทึกข้อมูล แต่มีสิ่งที่คำนึงก็คือมันต้องสืบทอดคลาสมาจาก QueueJob ของ Laravel  เท่านั้น 
  3. ส่วนคำสั่งเพื่อให้ JOB ทำงาน 
    • เป็นการสั่งงานเพื่อ Run Job ที่อยู่ภายใน Queue ซึ่งจะสามารถทำได้แค่ประเภทเก็บคำสั่งไว้ก่อนทำงาน 
    • ตัวอย่างคำสั่ง ผ่าน command line 
      • php artisan queue:listen --queue=queueName [basic run queue]
      • php artisan queue:listen --queue=high,low [set priority queue]
      • php artisan queue:listen --timeout=seconds  [set time out]
  4. ส่วนเก็บคำสั่งการทำงาน 
    • ระบบการเก็บคำสั่งของ Laravel มีอยู่สองประเภทคือ สั่งให้ทำงานเลยเรียกอีกอย่างหนึ่งว่า sync และอีกอย่างคือเก็บคำสั่งไว้ก่อนค่อยทำงานทีหลัง 
    • การเก็บคำสั่งของ Queue สามารถทำได้หลายรูปแบบเช่น
      • Database 
      • Redis 
      • Sync 
      • Beanstalkd
      • Sqs
      • Iron
เอาล่ะตอนนี้ก็รู้ถึงเรื่อง Queue แล้ว บทต่อไปจะกล่าวถึงการสร้าง Queue อย่างง่ายไปถึงขั้นยาก ค่อย ๆ ไป รอติดตามชมกันน่ะครับ 
Share on Google Plus

About maxcom

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 ความคิดเห็น:

แสดงความคิดเห็น