成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker 使用 supervisord 管理 lumen隊列與crontab

cyqian / 3169人閱讀

摘要:之前在內(nèi)使用的隊列服務(wù)做了一個異步,處理一些內(nèi)容審核的相關(guān)操作。但是每次重啟容器之后都需要進入內(nèi)部啟動的隊列進程雖然文檔內(nèi)有寫使用管理進程,但是并沒有那么做。。,最近需求上需要使用,所以決定使用來管理這些進程。所以使用了一個腳本,在執(zhí)行它。

之前在docker內(nèi)使用lumen的隊列服務(wù)做了一個異步,處理一些內(nèi)容審核的相關(guān)操作。但是每次重啟容器之后都需要進入docker內(nèi)部啟動lumen的隊列進程(雖然文檔內(nèi)有寫使用supervisord管理進程,但是并沒有那么做。。),最近需求上需要使用crontab,所以決定使用supervisord來管理這些進程。

supervisord dockerfile文件
#安裝
RUN apt-get update && apt-get install -y 
        supervisor
        cron 
    
#supervisord  
RUN mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisor/supervisord.conf

#crontab
#將root文件添加到 /var/spool/cron/crontabs/ 下
ADD cron/root /var/spool/cron/crontabs/root

#修改root文件的所屬組與權(quán)限
RUN chown -R root:crontab /var/spool/cron/crontabs/root 
 && chmod 600 /var/spool/cron/crontabs/root

#創(chuàng)建log文件
RUN touch /var/log/cron.log

EXPOSE 80

ENTRYPOINT ["/usr/bin/supervisord","-c", "/etc/supervisor/supervisord.conf"]
ENTRYPOINT  指令需要加-c 的參數(shù),不然會有一個WARNING
supervisord.conf文件
[supervisord]
nodaemon=true
[program:apache2]
command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"
autostart=true
autorestart=true
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work --daemon --quiet  --delay=3 --sleep=3 --tries=3
autostart=true
autorestart=true
numprocs=3
redirect_stderr=true
[program:entrypoint]
command=/var/www/html/entrypoint.sh
[program:cron]
command=/etc/init.d/cron start
autostart=true
autorestart=true
redirect_stderr=true

這里有幾個需要注意的點:

nodaemon=true    supervisord進程將在前臺運行 
這里需要為true,不然在啟動docker的時候會出現(xiàn) Exited (0),docker退出的情況。因為鏡像的前臺必須有東西在跑。
process_name=%(program_name)s_%(process_num)02d   進程name
numprocs=3 指讓supervisor運行3進程
numprocs為多個的時候process_name為必須值,不然name會沖突報錯

這篇文章有關(guān)于supervisor配置詳解

lumen隊列

文檔說的很詳細,這里不再累贅

這篇文章講的也很詳細

crontab

在上邊的dockerfile 文件中已經(jīng)寫了具體安裝與配置。

文檔里有關(guān)于laravel定時任務(wù)的具體使用方法

需要注意的是cron安裝之后需要supervisord啟動,然后需要將定時任務(wù)條目寫在一個root文件內(nèi),在dockerfileadd到鏡像/var/spool/cron/crontabs/root目錄

* * * * * /usr/local/bin/php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
注意: 需要寫/usr/local/bin/php  不然會出現(xiàn)任務(wù)不執(zhí)行的情況

此cron 將會每分鐘調(diào)用一次lumen命令調(diào)度器,當schedule:run命令執(zhí)行后,lumen評估你的調(diào)度任務(wù)并運行到期的任務(wù)。

有可能會遇到任務(wù)不執(zhí)行的情況,需要查看/var/log/cron.log日志文件,查看具體原因。如果日志文件內(nèi)沒有內(nèi)容就需要安裝rsyslog,然后修改/etc/rsyslog.conf文件,將cron.* /var/log/cron.log 前的注釋去掉。然后/etc/init.d/rsyslog start,再次查看cron.log就可以看到相關(guān)日志。

注意:crontab 使用環(huán)境變量的問題

由于crontab的執(zhí)行機制,所以無法直接使用配置的環(huán)境變量,但是我們應(yīng)用的配置都是通過環(huán)境變量來配置的,所以需要通過 env 命令將這些環(huán)境變量保存到 /etc/default/locale 里,crontab 在啟動時會加載這個文件里的環(huán)境變量,否則在執(zhí)行命令的時候會無法獲取相關(guān)的應(yīng)用配置,導(dǎo)致執(zhí)行錯誤。所以使用了一個shell腳本,在supervisord執(zhí)行它。

entrypoint.sh文件
#!/bin/bash

set -x

rm -rf /etc/default/locale
env >> /etc/default/locale

exec "$@"

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30187.html

相關(guān)文章

  • Docker 使用 supervisord 管理 lumen隊列crontab

    摘要:之前在內(nèi)使用的隊列服務(wù)做了一個異步,處理一些內(nèi)容審核的相關(guān)操作。但是每次重啟容器之后都需要進入內(nèi)部啟動的隊列進程雖然文檔內(nèi)有寫使用管理進程,但是并沒有那么做。。,最近需求上需要使用,所以決定使用來管理這些進程。所以使用了一個腳本,在執(zhí)行它。 之前在docker內(nèi)使用lumen的隊列服務(wù)做了一個異步,處理一些內(nèi)容審核的相關(guān)操作。但是每次重啟容器之后都需要進入docker內(nèi)部啟動lumen...

    hlcc 評論0 收藏0
  • 基于 lumen 的微服務(wù)架構(gòu)實踐

    摘要:現(xiàn)在的提供了一種更易于使用和維護的計劃任務(wù)方式。注意事項建議開啟這樣會極大的加速類的加載。 lumen 為速度而生的 Laravel 框架 官網(wǎng)的介紹很簡潔,而且 lumen 確實也很簡單,我在調(diào)研了 lumen 相關(guān)組件(比如緩存,隊列,校驗,路由,中間件和最重要的容器)之后認為已經(jīng)能夠滿足我目前這個微服務(wù)的需求了。 任務(wù)目標 showImg(https://segmentfault...

    hatlonely 評論0 收藏0
  • Dockerfile構(gòu)建PHP開發(fā)鏡像:Alpine+Nginx+PHP7+Supervisor+C

    摘要:一配置目錄結(jié)構(gòu)一般在生產(chǎn)環(huán)境都是負載均衡,定時任務(wù)是單獨在一個容器執(zhí)行,故此是注釋掉的,需要單獨在定時任務(wù)容器中打開即可。與配置文件由于配置文件是監(jiān)聽的默認情況下監(jiān)聽端口。使用套接字,這避免了的開銷。地址鏡像地址續(xù)搭建應(yīng)用部署 一、配置目錄結(jié)構(gòu) showImg(https://segmentfault.com/img/bVbpo9F?w=772&h=922); 1.1 crontabs...

    張率功 評論0 收藏0
  • 海航生態(tài)科技輿情大數(shù)據(jù)平臺容器化改造

    摘要:本文轉(zhuǎn)載自微信公眾號賬號,作者為海航生態(tài)科技技術(shù)研究院大數(shù)據(jù)開發(fā)工程師高顏。文章介紹了海航生態(tài)科技輿情大數(shù)據(jù)平臺的容器化改造經(jīng)驗,包括初期技術(shù)架構(gòu)應(yīng)用容器化架構(gòu)遷移持續(xù)發(fā)布與部署。 本文轉(zhuǎn)載自微信公眾號Docker(賬號:dockerone),作者為海航生態(tài)科技技術(shù)研究院大數(shù)據(jù)開發(fā)工程師高顏。 文章介紹了海航生態(tài)科技輿情大數(shù)據(jù)平臺的容器化改造經(jīng)驗,包括初期技術(shù)架構(gòu)、應(yīng)用容器化、架構(gòu)遷...

    idealcn 評論0 收藏0
  • Docker+supervisor+tomcat+nginx+php-fpm配置注意事項

    摘要:注意點使用啟動,不能在后臺運行,需要使用其中為或者并配置管理的進程不能以后臺程序運行。原因就是不能以非后臺運行。所以管理時,由于不能管理后臺進程,所以需要配置,在的頂端配置具體配置如下管理界面效果如下參考 注意點:1、使用docker啟動,supervisor不能在后臺運行,需要使用/usr/bin/supervisord -n -c/etc/supervisor/supervisor...

    niuxiaowei111 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<