用docker的好處很多,但我昨天想要定時執行php的任務時,卻遇到了尷尬。
一般我們用linux定時執行任務,用自帶的crontab就完事了,也非常好用。
但我之前都是使用sh指令碼,執行本地任務,至於怎麼執行docker的任務,還從來沒試過。
首先準備好sh指令碼
比如
echo 'hello' >> debug.log
放在docker容器的乙個目錄中,比如 /var/www/html下
使用指令
docker exec -it php-test sh /var/www/html/test.sh
看能否正確執行sh指令碼(確認是否有執行test.sh指令碼的許可權),debug.log檔案中是否有輸入(確認一下是否有建立debug.log的許可權)
接著,寫入/etc/crontab檔案
shell=/bin/sh
path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
......
*/2 * * * * ubuntu docker exec php-test sh /var/www/html/test.sh
每隔兩分鐘執行一次php-test容器中的test.sh指令碼(自己按需求改吧)
注意:這裡的docker指令不能帶-it 不然不會執行,需要重點注意
定時執行任務
在windows上,使用configuration task scheduler 任務計畫程式 task scheduler library 任務計畫程式庫 create task.或者 control panel scheduled tasks add a scheduled task.在linu...
定時執行任務
spring中可以通過配置方便的實現週期性定時任務管理,這需要用到以下幾個類 org.springframework.schedu ling.quartz.methodinvokingjobdetailfactorybean 配置需要排程的bean的某個方法 org.springframework....
Linux中任務的定時執行
語法 crontab e username l username r username v username file 說明 crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。u user 是指設定指定 user 的時程表,這個前提是你必須要有其許可...