Tugas saya adalah bahagian hadapan, dan baru-baru ini saya ingin menggunakan webhook + Flask GitHub untuk melakukan penggunaan automatik yang mudah:
Tarik kod secara automatik melalui antara muka webhook apabila terdapat penyerahan, dan mulakan semula uwsgi.
Baru kepada ular sawa, kod dengan ringan.
kod kelalang (struktur direktori merujuk kepada direktori dalam "Pembangunan WEB FLASK", yang tidak akan disiarkan kod utama adalah seperti berikut:
# coding=utf-8
import os
from flask import request, json, jsonify
from threading import Thread
from . import main
def 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('确认是自己提交的')
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 kod skrip
#/usr/bin/sh
sleep 10s
killall -s INT /www/webhook/bin/uwsgi
sleep 10s
uwsgi uwsgi.ini
Masalah yang dihadapi adalah seperti berikut:
1.return语句不会执行,因为线程中把uwsgi杀死了
2.脚本关闭uwsgi报 `is taking too much time to die...NO MERCY !!!`
3.上一步时间太长导致uwsgi重启失败
Bolehkah sesiapa membantu saya mengetahui apa yang salah dan cara membetulkannya
Mulakan semula pelayan menggunakan: