github - 利用Python 自動化部署問題
問題描述
本職是前端,最近想利用GitHub的webhook + Flask 搞個簡單的自動化部署,需求很簡單:在有提交的時候通過webhook接口自動拉取代碼,并重啟uwsgi。
python新手,代碼輕噴。
flask代碼(目錄結(jié)構(gòu)參考的《FLASK WEB開發(fā)》中的目錄,就不貼了);主要的代碼如下:
# coding=utf-8import osfrom flask import request, json, jsonifyfrom threading import Threadfrom . import maindef restart(): os.system(’./reload.sh’)@main.route(’/’)def welcome(): user_agent = request.headers.get(’User-Agent’) return 'Welcome, %s' % user_agent@main.route(’/webhook’, methods=[’POST’])def webhook(): print(’---------------------begin----------------------’) print(request.get_json()) print(’---------------------end----------------------’) push_info = request.get_json() commit_info = push_info[’commits’] if push_info[’ref’] == ’refs/heads/master’:print(’master分支有提交’)print(push_info[’commits’])os.system(’git pull origin master’) if push_info[’commits’][0][’committer’][’email’] == ’**********@qq.com’:print(’確認(rèn)是自己提交的’) data = {’hello’: ’world’, } js = json.dumps(data) resp = jsonify(data) resp.status_code = 200 t = Thread(target=restart, daemon=True) t.start() return resp
reload.sh腳本代碼
#/usr/bin/shsleep 10skillall -s INT /www/webhook/bin/uwsgisleep 10suwsgi uwsgi.ini
遇到的問題如下:
1.return語句不會執(zhí)行,因?yàn)榫€程中把uwsgi殺死了2.腳本關(guān)閉uwsgi報 `is taking too much time to die...NO MERCY !!!`3.上一步時間太長導(dǎo)致uwsgi重啟失敗
有木有大神幫忙看下有什么問題,可以怎么改
問題解答
回答1:重啟服務(wù)器可以用:
ps -ef | grep uwsgi | grep -v -E ’grep’ | xargs kill -USR1
相關(guān)文章:
1. macOS Sierra 10.12 安裝mysql 5.7.1出現(xiàn)錯誤2. mysql - 拖拽重排序后怎么插入數(shù)據(jù)庫?3. android - 安卓做前端,PHP做后臺服務(wù)器 有什么需要注意的?4. javascript - 天貓首頁首屏數(shù)據(jù)來源5. mysql 獲取時間函數(shù)unix_timestamp 問題?6. mysql - 僅僅只是把單引號與反斜杠轉(zhuǎn)義不用prepare statement能否避免sql注入?7. php - 生產(chǎn)環(huán)境下,給MySQL添加索引,修改表結(jié)構(gòu)操作,如何才能讓線上業(yè)務(wù)不受影響?8. mysql主主同步,從庫不同步應(yīng)該怎么解決?9. mysql在限制條件下篩選某列數(shù)據(jù)相同的值10. 新入手layuiadmin,部署到tp中。想用php自已寫一個后臺管理系統(tǒng)。
