ผู้เขียนเองทดสอบการใช้งานโปรแกรมสำหรับใช้งานคิว(queue) ที่ใช้ไลบรารี่ pheanstalk อยู่พบว่าการทำงานในแบบเบื้องหลังหรือตั้งเวลาให้ทำงานไม่สามารถใช้งานได้ โปรแกรมสคริป php จะหยุดทำงานไม่ต่อเนื่อง เสียเวลาไปหลายวันก็ยังไม่สามารถหาวิธีการสำหรับตรวจสอบสคริป php ที่สร้างใหม่ให้ทำงานตลอดเวลา รวมทั้งบันทึกล็อกไฟล์ข้อมูลการทำงานได้เองแบบอัตโนมัติด้วย ยิ่งเพิ่มงานให้ยุ่งยากมากขึ้นเป็นสองสามเท่าตัว
ไม่ต้องเสียน้ำตากับการรันโปรแกรมสคริป php อัตโนมัติ แบบมืออาชีพนี้จะติดตั้งซอฟต์แวร์ที่เขียนโดยภาษา Python ไว้คอยตรวจสอบดูเซอร์วิสว่าทำงานอยู่หรือไม่ หากหยุดทำงานก็สั่งสตาร์ทเซอร์วิสใหม่ให้อัตโนมัติ แบบมืออาชีพ ที่สำคัญใช้งานง่ายมาก ติดตั้งโปรแกรมก็ง่ายด้วย นี่แหล่ะเยี่ยมที่สุดสำหรับงานนี้
ขั้นตอนที่ 1 สำหรับโปรแกรมที่ใช้งานก็คือโปรแกรม supervisor การติดตั้งบนเครื่องลีนุกส์เพียงแค่พิมพ์คำสั่งตามที่ผู้เขียนแนบให้แค่นั้น
#apt-get install supervisor
ขั้นตอนที่ 2 กำหนดค่าคอนฟิกให้กับโปรแกรม ตามตัวอย่างผู้เขียนต้องการรันสคริป php แบบอัตโนมัติ แบบตรวจสอบเซอร์วิสให้ด้วยหากหยุดทำงานก็เริ่มต้นสตาร์ทให้ใหม่ด้วย ตามตัวอย่างให้สร้างไฟล์ชื่อ pheanstalk.conf ไว้ในโฟลเดอร์ /etc/supervisor/conf.d/ ข้อสำคัญที่สุดห้ามรันโปรแกรมแบบ daemon หรือแบบเบื้องหลัง
[program:pheanstalkget.php] command=/usr/bin/php /var/www/tpit/gprmc/pheanstalk/pheanstalkget.php ; the program (relative uses PATH, can take args) process_name=%(program_name)s ; process_name expr (default %(program_name)s) numprocs=1 ; number of processes copies to start (def 1) ;directory=/tmp ; directory to cwd to before exec (def no cwd) umask=022 ; umask for process (default None) priority=999 ; the relative start priority (default 999) autostart=true ; start at supervisord start (default: true) autorestart=true ; whether/when to restart (default: unexpected) startsecs=1 ; number of secs prog must stay running (def. 1) startretries=3 ; max # of serial start failures (default 3) exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
ขั้นตอนที่ 3 เป็นการเริ่มใช้งานโปรแกรม supervisor และการควบคุมโปรแกรมสคริป php โดยใช้โปรแกรม supervisorctl
#/etc/init.d/supervisor start # supervisorctl pheanstalkget.php RUNNING pid 30700, uptime 0:16:55 supervisor>
ผู้เขียนได้ทำการทดสอบการทำงานพบว่าได้ผลเป็นที่น่าพึงพอใจในเบื้องต้น แต่อย่างไรก็ตามยังต้องใช้เวลาพิสูจน์การทำงานจริงอีกระยะหนึ่ง ผลการทดลองจะได้นำมาอัพเดทกันอีกครั้งหนึ่งในส่วนของเนื้อหา เรื่องราวดี ๆ อย่างนี้ยังมีให้พบเห็นกันได้ที่ gpstrackingthailand.com อีกเวบไซต์หนึ่งที่ผู้เขียนได้มีโอกาสพัฒนาขึ้นมาเอง สำหรับข้อมูลเนื้อหาสาระดี ๆ จากผู้ให้บริการระบบจีพีเอสติดตามรถยนต์ ส่วนเนื้อหาเรื่องถัดไปที่พลาดไม่ได้ก็คือการรันโปรแกรมคิว beanstalk พร้อมกับโปรแกรมไลบรารี่ pheanstalk สำหรับบริหารจัดการคิวแบบง่าย ๆ สไตล์ที่เราถนัด ทำจริง ประสบการณ์จริง เพื่อการพัฒนาองค์ความรู้แบบยั่งยืน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น