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

資訊專欄INFORMATION COLUMN

Docker 使用 supervisord 管理 lumen隊(duì)列與crontab

hlcc / 2031人閱讀

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

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

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ù),不然會有一個(gè)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

這里有幾個(gè)需要注意的點(diǎn):

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

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

lumen隊(duì)列

文檔說的很詳細(xì),這里不再累贅

這篇文章講的也很詳細(xì)

crontab

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

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

需要注意的是cron安裝之后需要supervisord啟動(dòng),然后需要將定時(shí)任務(wù)條目寫在一個(gè)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)度器,當(dāng)schedule:run命令執(zhí)行后,lumen評估你的調(diào)度任務(wù)并運(yùn)行到期的任務(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í)行機(jī)制,所以無法直接使用配置的環(huán)境變量,但是我們應(yīng)用的配置都是通過環(huán)境變量來配置的,所以需要通過 env 命令將這些環(huán)境變量保存到 /etc/default/locale 里,crontab 在啟動(dòng)時(shí)會加載這個(gè)文件里的環(huán)境變量,否則在執(zhí)行命令的時(shí)候會無法獲取相關(guān)的應(yīng)用配置,導(dǎo)致執(zhí)行錯(cuò)誤。所以使用了一個(gè)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/27713.html

相關(guān)文章

  • Docker 使用 supervisord 管理 lumen隊(duì)列crontab

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

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

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

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

    摘要:一配置目錄結(jié)構(gòu)一般在生產(chǎn)環(huán)境都是負(fù)載均衡,定時(shí)任務(wù)是單獨(dú)在一個(gè)容器執(zhí)行,故此是注釋掉的,需要單獨(dú)在定時(shí)任務(wù)容器中打開即可。與配置文件由于配置文件是監(jiān)聽的默認(rè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)驗(yàn),包括初期技術(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)驗(yàn),包括初期技術(shù)架構(gòu)、應(yīng)用容器化、架構(gòu)遷...

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

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

    niuxiaowei111 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<