Máy chủ tiếng vang python http

Vì vậy, bạn đang chạy trang web công cộng và bạn có một cái gì đó như Máy chủ Jenkins, nơi bạn có thể thực hiện các chương trình nhỏ và giám sát trạng thái trang web của bạn. Có nhiều giải pháp được trả lương cao cho điều đó, nhưng theo hướng dẫn này, chúng tôi sẽ thử xây dựng ứng dụng đơn giản trong Python

Điều kiện tiên quyết trước tiên chúng ta cần bố trí các yêu cầu

  • Request URL is only
  • Nhận phản hồi và kiểm tra mã trạng thái
  • Thật tuyệt khi đo thời gian phản hồi
  • Chúng tôi sẽ cần chạy các yêu cầu theo lịch trình [thời gian sau 15 giây]
  • Please cảnh báo nếu có sự cố xảy ra

Được rồi, chúng tôi có các yêu cầu của chúng tôi cho phép xem giải pháp

# health_check.py
import requests
import schedule
import time


def fetch_url[]:
    response = requests.get['//93days.me']
    status_code = response.status_code
    response_time = response.elapsed.total_seconds[]
    if status_code == 200 and response_time < 3:
        print[f'The status code: {status_code}, Response time: {response_time}']
    else:
        print[f'We are in trouble Huston']


schedule.every[15].seconds.do[fetch_url]

while True:
   schedule.run_pending[]
   time.sleep[1]

Bây giờ tất cả còn lại là bắt đầu chương trình, mở thiết bị đầu cuối đến thư mục tệp của bạn và chạy

Đây là những điều xảy ra khi chúng tôi chạy chương trình, trước tiên chúng tôi nhập 3 thư viện [yêu cầu, lịch trình, thời gian]. Trong hàm fetch_url[], chúng tôi yêu cầu đến URL, truy xuất mã trạng thái và thời gian phản hồi [Tôi đã sử dụng phản hồi đã trôi qua ở đây]. Sau đó, chúng tôi có thể nếu điều kiện khác, nơi chúng tôi kiểm tra mã trạng thái với thời gian phản hồi và tin nhắn dựa trên kết quả. Bây giờ vì chúng tôi có chức năng, chúng tôi cần nói với chương trình tần suất chúng tôi muốn thực hiện cuộc gọi, trong trường hợp của tôi sau 15 giây. Và toàn bộ điều kiện sẽ chạy trong khi các vòng lặp, trong khi điều kiện là đúng

Như bạn có thể thấy đó là một bản demo dự án nhỏ, nhưng bạn có thể sáng tạo và thêm thông báo tấn công hoặc email cảnh báo. Chúng tôi cũng có thể lưu trữ thời gian phản hồi trong cơ sở dữ liệu và sau đó tạo ra một số biểu tượng đồ họa đẹp với D3. js hoặc các thư viện tương tự. Tôi hy vọng bạn có ý tưởng tưởng tượng và luôn cảm thấy miễn phí đăng bài bình luận của bạn, các đề xuất trong phần bên dưới đây

Trong khi làm việc trong một dự án với EdgedB và Fastapi, tôi muốn thực hiện kiểm tra sức khỏe đối với máy chủ Fastapi trong GitHub CI. Điều này sẽ thông báo cho tôi về trạng thái làm việc của ứng dụng. Ý tưởng là -

  • Chạy máy chủ trong nền
  • Chạy lệnh đối với máy chủ sẽ biểu thị rằng ứng dụng đang ở trạng thái hoạt động
  • Execute Unabled
  • Thoát bằng mã 0 Nếu kiểm tra thành công, nếu không thoát bằng mã 1

shell shell after here for found a QUY TRÌNH CÔNG VIỆC tương thích với máy chủ HTTP Python. This version ”

  • Chạy máy chủ web Python trong nền
  • Thực hiện yêu cầu HTTP đối với máy chủ và kiểm tra xem nó có trả lại HTTP 200 [OK]. Nếu yêu cầu không thành công hoặc máy chủ chưa sẵn sàng, hãy đợi một giây và thực hiện lại yêu cầu và tiếp tục thử lại trong 20 lần tiếp theo trước khi từ bỏ
  • Thực hiện việc dọn dẹp và giết chết các quá trình Python
  • Thoát bằng mã 0 Nếu yêu cầu thành công, nếu không thoát bằng mã 1
#!/bin/bash

set -euo pipefail

# Run the Python server in the background.
nohup python3 -m http.server 5000 >> /dev/null &

# Give the server enough time to be ready before accepting requests.
c=20
while [[ $c != 0 ]]
do
    # Run the healthcheck.
    if [[ $[curl -I //localhost:5000/ 2>&1] =~ "200 OK" ]]; then
        echo "Health check passed!"

        # ...do additional cleanups if required.
        pkill -9 -i python
        exit 0
    fi
    [[c--]]
    echo "Server isn't ready. Retrying..." $c
    sleep 1
done

echo "Health check failed!"
# ...do additional cleanups if required.
pkill -9 -i python
exit 1

nohup trước python3 -m http.server 5000 chắc chắn rằng tín hiệu SIGHUP không thể tiến gần máy chủ và tắt quy trình. Dấu và & sau khi lệnh chạy quá trình trong nền. Sau đó, tập lệnh bắt đầu thực hiện các yêu cầu đến URL //localhost:5000/ trong một vòng lặp. Nếu máy chủ trả về HTTP 200, kiểm tra sức khỏe coi như thành công. This thing will break the loop and file command will be terminating with the status exit 0. Nếu máy chủ không trả lại HTTP 200 hoặc chưa có sẵn, tập lệnh sẽ tiếp tục thử lại 20 lần với khoảng cách 1 giây giữa mỗi yêu cầu tiếp theo trước khi bỏ qua. Kiểm tra sức khỏe không thành công sẽ tạo ra câu chuyện chấm dứt với trạng thái exit 1

Chủ Đề