使用场景,最近在研究把废弃的安卓手机利用起来跑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请求并打印响应。
通过这些注释,应该可以更清楚地理解代码的实现和工作原理。