Menu

Thursday, August 8, 2019

[Laravel - Scheduler] การใช้ Environment Variable ของระบบปฏิบัติการใน Laravel Scheduler
[Laravel - Scheduler] How to Use Environment Variable of Operating System in Laravel Scheduler

Laravel scheduler ใช้ Crontab ในการรันคำสั่งต่างๆตามเวลาที่กำหนดบน Linux

เมื่อเราต้องการใช้งาน Laravel scheduler เราเพียงเพิ่มการตั้งค่าตามด้านล่างนี้ใน Cron ของ server
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
สำหรับการใช้ Environment Variable ของระบบปฏิบัติการ เราจำเป็นต้องสร้าง shell script ขึ้นมาตัวนึง เพื่อ export ตัวแปรที่เราต้องการใช้ก่อน

สำหรับการ export ตัวแปรทั้งหมด ใช้คำสั่งด้านล่างนี้ เพื่อสร้าง script
printenv | sed 's/^\(.*\)$/export \1/g' > /path-to-your-project/project_env.sh
สำหรับการ export ตัวแปรเพียงตัวเดียว ใช้คำสั่งด้านล่างนี้ เพื่อสร้าง script
printenv | sed 's/^\(.*\)$/export \1/g' | grep -E "^export variable-name" > /path-to-your-project/project_env.sh
หลังจากที่สร้าง script แล้ว ให้แก้ไขการตั้งค่าใน Cron ของ server เป็นตามด้านล่างนี้
* * * * * www-data ./path-to-your-project/project_env.sh; php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
โดยที่
  • path-to-your-project เป็น absolute path ของ project
  • variable-name เป็นชื่อของ Environment Variable ที่เราต้องการ export

No comments:

Post a Comment