|
|
|
สอบกามการตั้ง task scheduler ให้ IE รัน php แต่บางครั้งระบบรันIE เอง2ครั้ง |
|
|
|
|
|
|
|
ลองใช้ Web Browser ตัวอื่นดูครับ ว่าเป็นหรือเปล่า เช่น Chrome ครับ
|
|
|
|
|
Date :
2018-04-24 17:37:22 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปกติการตั้ง scheduler หรือ cron job ก็ไม่ควรจะให้มันทำงานทันทีทุกครั้งที่ถูกเรียก
ควรจะมีการตรวจก่อนว่าถูกสั่งให้ทำงานไปแล้วหรือยังเมื่อเร็วๆนี้
เช่น 30 นาทีที่ผ่านมาถูกเรียกทำงานไปหรือยัง ถ้ายังก็สั่งให้ทำงาน ถ้าเรียกแล้วก็จบการทำงาน เป็นต้น.
และจากการทำงานข้างบน ผมเลยเขียนคลาสขึ้นมาตัวหนึ่ง ให้ทำงาน"ร่วมกับ" cron job, หรือ schduler.
https://rundiz.com/?p=377
ตัวอย่างเช่นจะกำหนดให้คำสั่งทำงานทุกชั่วโมง เราก็ตั้ง scheduler ไว้ทุกชั่วโมงตามเดิม.
Code (PHP)
$PhpSchedule = new \Rundiz\PhpSchedule\PhpSchedule();
$PhpSchedule->add('myTaskName', 'myFunction', ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']);
$PhpSchedule->run();
function myFunction() {
// run your code.
}
หรือถ้าไม่ใช้ของผม จะเขียนเองให้มันง่ายๆก็ได้ ตัวอย่างการทำงานเช่น
กำหนดชื่องานใน php สักชื่อ
เมื่อถูกเรียกใช้งาน ให้ตรวจว่ามีชื่อไฟล์ md5('ชื่องานนั้น').'.txt' หรือยัง
ถ้ายังให้เขียนไฟล์เป็น md5('ชื่องานนั้น').'.txt' แล้วบันทึกไฟล์ว่างเปล่า
ถ้ามีการเขียนชื่อไฟล์แล้ว ให้เรียกดูวันที่ date modify (filemtime) ว่าเกินกว่านาทีที่กำหนดไว้หรือไม่ เช่น 30 นาที
ถ้าไม่เกิน แสดงว่าเพิ่งเรียกไป ให้จบการทำงาน
ถ้าเกิน ให้เขียนทับไฟล์นั้นไปแล้วสั่งให้ทำงาน
แบบนี้เป็นต้น.
|
|
|
|
|
Date :
2018-04-24 21:27:10 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|