วันอังคารที่ 31 ตุลาคม พ.ศ. 2560

เปลี่ยนมารันคิวแบบใช้โปรแกรมฐานข้อมูล(MySql) กันดูบ้าง

เปลี่ยนมารันคิวแบบใช้โปรแกรมฐานข้อมูล(MySql) กันดูบ้างซิ จะได้รู้ว่าวิธีไหนทำได้สะดวกและดีที่สุด

ผู้เขียนเองได้ทดสอบการติดตั้งโปรแกรมการจัดการคิวไฟล์แบบง่ายไปครั้งแรกมาแล้ว http://www.s-techthai.com/2017/05/queue-file-php.html พบว่ามีข้อจำกัดอยู่มากโดยเฉพาะการแข่งขันกันจัดเก็บคิวทำได้ไม่สมบูรณ์ในบางครั้ง จึงเป็นที่มาของการปรับปรุงให้ดีขึ้นด้วยโปรแกรม beanstalk  http://www.s-techthai.com/2017/05/beanstalk.html พบว่ามีการใช้งานได้ง่ายดาย แก้ไขปัญหาเรื่องการแข่งขันกันจัดเก็บข้อมูลได้อย่างเด็ดขาด 100%  แต่ผู้เขียนยังพบว่าการบริหารจัดการที่ดูว่าง่ายดายกว่า หากสามารถคอนฟิกค่าต่าง ๆ ได้ดีก็เป็นการทำงานคิวที่สมบูรณ์แบบด้วยซ้ำ สำหรับวันนี้จะเป็นการสร้างคิวแบบใช้โปรแกรมฐานข้อมูล MySql ดูบ้างเพื่อเปรียบเทียบกัน

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

https://github.com/kotas/myqueue/blob/master/MyQueue.php
จากนั้นตั้งชืื่อไฟล์ตามตัวอย่าง MyQueue.php

ขั้นตอนที่ 2 สร้างฐานข้อมูลจากไฟล์ต่อไปนี้ได้เลย

 CREATE TABLE myqueue (
   `id`           BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
   `locked_until` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
   `data`         BLOB NOT NULL,
   PRIMARY KEY  (`id`)
 ) ENGINE=InnoDB;

ขั้นตอนที่ 3 สร้างโปรแกรมทดสอบการทำงานคิวตามตัวอย่างง่าย ๆ ต่อไปนี้

<?php
include_once 'MyQueue.php';
$servername = 'localhost';
$username = 'username';
$password = 'password';
$dbname = 'myqueue';
$PDO = new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
$queue = new MyQueue($PDO, 'myqueue');
$queue->push('Testing insert data to MyQueue!!!!');
echo $queue->pop();
?>
สำหรับโปรแกรมคิวแบบใช้โปรแกรมฐานข้อมูลนี้จะพบว่าทำงานได้ค่อนข้างดี มีประสิทธิภาพ และใช้งานได้ง่ายมาก เหมาะสมอย่างยิ่งสำหรับการนำไปพัฒนาปรับปรุงโค๊ดกันต่อเพื่อใช้บริการจัดการข้อมูลที่มีความสลับซับซ้อนเพิ่มมากขึ้น เนื้อหาดี ๆ ในวันนี้จะสำเร็จลุล่วงไปไม่ได้เลยหากไม่ได้รับการสนับสนุนจาก gps โคราช ด้วยคุณภาพชั้นนำของอุปกรณ์ ผ่านมาตรฐานกสทช. ถูกกว่า คุ้มค่ากว่า ทุกบาทที่จ่ายไป