github - Automatikkan isu penggunaan menggunakan Python
大家讲道理
大家讲道理 2017-05-24 11:35:21
0
1
1095

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(1)
習慣沉默

Mulakan semula pelayan menggunakan:

ps -ef | grep uwsgi | grep -v -E 'grep' | xargs kill -USR1
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan