วันอาทิตย์ที่ 10 มิถุนายน พ.ศ. 2555

ตั้งเวลาให้สคริปต์ทำงานด้วย Cronjob


        ผมมีโอกาสได้ทำเว็บไซต์ให้กับลูกค้ารายนึง เขาต้องการให้สามารถลบรายการสั่งซื้อโดยอัตโนมัติ ถ้าหากลูกค้าไม่แจ้งชำระเงินภายใน 7 วัน ผมคิดว่า Hostน่าจะมีServiceของ Cronjob ให้ใช้งาน เพราะ Host ที่ลูกค้าใช้เป็นแบบ Linux แต่ปรากฎว่า Hostไม่มีบริการนี้ให้ใช้ (มารู้ทีหลังว่าเขาใช้ Debian ลินุกซ์ และติดตั้ง VHCS2 (Virtual Hosting Control System) ซึ่งไม่มีบริการนี้ให้ใช้)  ก็เลยเสิร์ทดูใน google เผื่อมีวิธีแก้ปัญหานี้
        และแล้วผมก็เจอเว็บไซต์เว็บนึง ที่ให้บริการCronjobแบบออนไลน์ครับ คือเว็บไซต์ www.setcronjob.com ก็ได้ลองใช้งานดู และสามารถใช้งานแทน Cronjob จากHostของเราได้ครับ เพียงแต่ถ้าเราใช้งานแบบ Free Account จะมีการกำหนด Time Out ได้ไม่เกิน 150 วิ ทำให้ไม่สามารถรันคำสั่งที่ใช้เวลาประมวลผลนานๆได้ เช่น การแบ็คอัพไฟล์,แบ็คอัพฐานข้อมูล เป็นต้น

ผมขออธิบายหน่อยนะคับ ว่า Cronjob คืออะไร
        Cronjob หรือ Crontab คือ TaskScheduled ของระบบปฏิบัติการ Linux/Unix  ใช้สำหรับตั้งเวลาให้โปรแกรมใดๆทำงานหรือให้มันจะรันสคริปต์แบบอัตโนมัติ เช่น รันตอนตีหนึ่งของทุกวัน
        Cronjob มีประโยชน์อย่างมากต่อการการแบ็คอัพไฟล์,แบ็คอัพฐานข้อมูล,ส่งเมล อื่นๆ

มาดูวิธีใช้งานกันเลยครับ Cron Job ในเว็บไซต์www.setcronjob.comกันเลยครับ
1.ไปที่เว็บไซต์ www.setcronjob.com แล้วให้สมัครสมาชิก/ยืนยันอีเมลให้เรียบร้อย และทำการล็อกอินเข้าสู่ระบบ
2.ให้คลิกที่ Create CronJob จะมีPopupแสดงขึ้นมาดังรูป

1 ตั้งชือให้กับสคริปต์ของคุณซะ ควรตั้งชื่อให้สื่อความหมาย เช่น ลบรายการสั่งซื้อ
2.เลือก Time Zone ให้เป็นเวลาในไทย คือ Asia/Bangkok
3.เลือกเวลาว่าจะให้สคริปต์ทำงานตอนไหน สามารถเลือกให้ทำงานทุกๆนาที,ชั่วโมง,วัน,สัปดาห์,เดือน ได้ครับ ดังรูป
4.เลือกเวลาให้สคริปต์ทำงานเหมือนกันครับ แต่จะให้เรากำหนดค่าเอง ดูรูปตัวอย่าง

ดูจากรูป ผมได้กำหนดให้สคริปต์ (yourscript.php) มันจะถูกเจ้าCronJobเรียกให้ทำงานวันละ 1 ครั้ง ตอนเวลาตี 1 : 1 นาที ของทุกๆวันทำงาน ครับ
5.ใส่ URL ของสคริปต์ของเราครับ ควรตรวจสอบให้แน่ใจว่าเรามีสคริปต์นี้อยู่ในเว็บไซต์ของเรา ส่วนของผมจะเป็นสคริปต์ลบรายการสั่งซื้อ ผมจะสร้างไฟล์ชื่อว่า orderDelete.php และเขียนโค๊ดลบรายการสั่งซื้อเอาไว้เรียบร้อย (ไม่ขอเปิดเผยโค๊ด) ผมก็พิมพ์ URL เต็มๆว่า http://www.webme.com/orderDelete.php และกำหนดให้Cronjobเรียกทำงานวันละ 1 ครั้งก็พอครับ
6.Cron Timeout กำหนดให้มีค่าสูงสุดไว้ก่อนครับ คือ 150 Second เผื่อสคริปต์ของเราอาจจะRUNนานครับ ถ้าเป็นแบบ Free Account จะกำหนดเวลาสูงสุดได้แค่ 150 วิเท่านั้นครับ แต่ถ้าเสียตังค์จะเป็นแบบ Unlimited ครับ
7.เลือกการแจ้งเตือนทางเมล จะมีตัวเลือกคือ Never คือ ไม่ต้องส่ง,When Cron Fails คือ ส่งเมื่อเกิดข้อผิดพลาดเกิดขึ้น เช่น สคริปต์อาจรันนานเกินเวลา Time Out ที่กำหนด , When Cron is Executed คือ จะส่งเมื่อสคริปต์ถูกRUNและไม่มีปัญหาอะไรครับ
8.เลือก Group สามารถจัดกลุ่มสคริปต์ของเราได้ครับ โดยไป Create Group เพื่อสร้างกลุ่มครับ
9. เลือกสถานะ จะมีเปิดการทำงาน(Enabled)กับปิดการทำงาน(Disabled)ครับ
10.กดปุ่ม Save Cronjob เมื่อมั่นใจว่ากำหนดค่าถูกต้องแว้ววว

สุดท้ายนี้ ....ก็มีแค่นี้แหละ ^^’’

ไม่มีความคิดเห็น :

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