使用場景,最近在研究把廢棄的安卓手機利用起來跑python程式碼,但是有好多臺安卓手機。我就想著把其中一臺拿來做負載均衡,然後分配給其他4臺爛手機,哈哈哈,廢物再利用。至於安卓怎麼跑python程式碼,就自己查一下相關資料了哈,這裡就不贅述了。
``
from flask import Flask, request, jsonify
app = Flask(__name__)
# 處理GET請求的示例
@app.route('/get_example', methods=['GET'])
def get_example():
# 獲取GET請求中的引數值
param1 = request.args.get('param1')
param2 = request.args.get('param2')
# 構建返回的JSON資料
response = {
"message": "GET request received",
"param1": param1,
"param2": param2
}
# 返回JSON資料
return jsonify(response)
# 處理POST請求的示例
@app.route('/post_example', methods=['POST'])
def post_example():
# 獲取POST請求中的URL引數值
url_param1 = request.args.get('url_param1')
url_param2 = request.args.get('url_param2')
# 獲取POST請求中的Body值
body_param1 = request.json.get('body_param1')
body_param2 = request.json.get('body_param2')
# 構建返回的JSON資料
response = {
"message": "POST request received",
"url_param1": url_param1,
"url_param2": url_param2,
"body_param1": body_param1,
"body_param2": body_param2
}
# 返回JSON資料
return jsonify(response)
if __name__ == '__main__':
# 啟動Flask應用
# debug=True:開啟除錯模式,便於開發時除錯錯誤,自動過載程式碼
# host='0.0.0.0':讓伺服器可被外部訪問,而不僅僅是本地訪問
app.run(debug=True, host='0.0.0.0')
``
程式碼註釋說明
伺服器列表和快取池初始化:
伺服器列表 servers 包含四個伺服器的URL。
使用 Queue 初始化快取池 cache_pool,大小為伺服器數量。
將所有伺服器加入快取池。
檢查伺服器狀態的函式 check_server_status:
該函式在一個獨立的執行緒中執行,定期檢查伺服器狀態。
對每個伺服器傳送一個GET請求,超時時間為5秒。
如果伺服器響應正常且不在快取池中,將其加入快取池。
如果伺服器不可用且在快取池中,將其從快取池中移除。
每10秒檢查一次伺服器狀態。
處理請求的函式 handle_request:
從快取池中獲取一個可用伺服器。
根據請求方法(GET或POST)傳送請求。
請求完成後將伺服器放回快取池。
如果請求失敗,遞迴重試最多3次。
示例使用:
設定請求頭 headers 和 cookies。
傳送一個GET請求並列印響應。
傳送一個POST請求並列印響應。
透過這些註釋,應該可以更清楚地理解程式碼的實現和工作原理。