Rumah  >  Soal Jawab  >  teks badan

github - Automatikkan isu penggunaan menggunakan Python

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

大家讲道理大家讲道理2675 hari yang lalu1023

membalas semua(1)saya akan balas

  • 習慣沉默

    習慣沉默2017-05-24 11:37:21

    Mulakan semula pelayan menggunakan:

    ps -ef | grep uwsgi | grep -v -E 'grep' | xargs kill -USR1
    

    balas
    0
  • Batalbalas