CronJob คืออะไร วิธีตั้งเวลาให้ PHP ทำงาน

cronjob-php

CronJob คืออะไร วิธีตั้งเวลาให้ PHP ทำงานตามช่วงเวลา

Cronjob เป็นคุณสมบัติพื้นฐานของระบบปฏิบัติการ Linux โดยลีนุกซ์นั้น จัดว่าเป็นระบบปฏิบัติการยูนิกซ์ประเภทหนึ่งด้วยเช่นกัน
เราสามารถใช้คุณสมบัติ CronJob นี้ เพื่อกำหนดช่วงเวลาการทำงานของภาษา php หรือ script ใด ๆ โดยอัตโนมัติได้
โดยปกติแล้วการที่ภาษาที่เป็น Server Side ต่าง ๆ จะสามารถเริ่มทำงานได้ จะต้องอากศัย User ในการเริ่มทำงาน
คือจะทำการเปิดเบราว์เซอร์หน้าเว็บไซต์นั้น ๆ ก่อน ถึงจะสามารถทำงานคำสั่งต่าง ๆ ภายใน script file นั้น ๆ ได้
แต่เราสามาถใช้ความสามารถของ CronJob ในการสั่งให้ไฟล์นั้น ๆ ทำงานได้ โดยไม่ต้องอาศัยการเปิดหน้าเว็บไซต์ของเลย


วิธีตั้งค่าใช้งาน CronJob



1. เข้าสู่ระบบ DirectAdmin เลือกโดเมนที่ต้องการใช้งาน run script php


วิธีใช้งาน-cronjob-ใน-php


2. ไปที่ส่วน Advanced Features มองหาหัวข้อ CronJob


วิธีใช้งาน-cronjob-ใน-php


3. หลังจากคลิกเข้ามาเจอช่องให้ใส่ ช่วงเวลาและวัน ที่จะให้ run script โดยอธิบาย input ต่าง ๆ ได้ดังนี้


วิธีใช้งาน-cronjob-ใน-php

  • Minute ใส่ตัวเลขนาที 0-59
  • Hour ใส่ตัวเลขชั่วโมง 0-23
  • Day of Month ใส่ตัวเลขวันที่ 1-31
  • Month ใส่ตัวเลขเดือน 0-12
  • Day of Week ใส่ตัวเลขวัน 1-7 หรือ Sun-Sat ( ตัวเลข 0 หรือ 7 มีค่าเท่ากันคือวันอาทิตย์ )
  • Command คือ Path ของ php script ที่เราต้องการให้ทำงาน
  • Prevent Email ถ้าเราไม่ต้องการให้ส่งข้อมูลทุกครั้งที่ CronJob ทำงานให้กดที่ปุ่มนี้


ตัวอย่างการกำหนดเวลา



เครื่องหมายดอกจัน ( * ) หมายถึงทำงาน ทุกนาที ทุกชั่วโมง ทุกวัน ทุกเดือน คือทำงานทั้งหมด

  • กำหนดให้ทำงานทุก 5 นาที ให้กรอกข้อมูลดังนี้
    */5 * * * *
  • กำหนดให้ทำงานทุกเที่ยงคืนของทุกวัน ให้กรอกข้อมูลดังนี้
    0 0 * * *
  • กำหนดให้ทำงานทุก 6 โมงเข้าของทุกวันศุกร์
    0 6 * * 5


ทดสอบการทำงาน

สำหรับการทดสอบการทำงานของ CronJob ให้ลองสร้างไฟล์ .php และเขียนคำสั่งส่งอีเมลไปที่อีเมลของเรา
ทุก ๆ 3 นาทีและตรวจดูว่ามีอีเมลเข้าที่มีกล่องข้อความหรืออีเมลขยะหรือไม่ ถ้าการตั้งค่าต่าง ๆ ถูกต้องเราก็จะได้รับอีเมล

<?php
	mail("[email protected]","Hello CronJob","This is message from CronJob System.");
?>


ตัวอย่างกำหนด Command Path



สำหรับการกำหนด Path ของ php script หรือภาษาอื่น ๆ ให้เรากำหนดเป็นแบบ Absolute Hosting Path ตัวอย่างเช่น

/home/username/domains/domain.com/public_html/jobs.php

Command ด้านบนเป็นเพียงตัวอย่าง สำหรับ Command Path อาจจะมีความแตกต่างกันไปตามแต่ละผู้ให้บริการซึ่งท่าน
สามารถสอบถามหรือหาตัวอย่างซึ่งอยู่ในหน้าการใช้งาน Cronjob ได้ด้วยตัวเอง


สำหรับการใช้งาน cronjob ร่วมกับ php framework ถ้าไม่สามารถใช้งานได้กับ command ด้านบนให้เปลี่ยนไปใช้ wget แทน ตัวอย่างคำสั่ง wget command เมื่อใช้กับ codeigniter framework

wget yourdomain.com/path/to/project/index.php/controller/method