python对外提供接口将数据放入rabbitmq
注意:1)并发量不太大的时候这样使用可以,如果并发较大建议还是用java进行实现。
2)此处建议使用python3
# coding:utf-8 import json import pika from flask import Flask, request app = Flask(__name__) MY_URL = '/knowledge/api/v1/' def push_mess(param): connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.basic_publish(exchange='', routing_key='myquence', body=param) print("[knowledge] Send "+param) connection.close() resu = {"code": 200,"result":"success!"} # get @app.route(MY_URL + 'get/tasks', methods=['GET']) def get_task(): param = request.args.to_dict() # print(param) # request.args请求参数 # print(type(param)) # print(param) push_mess(json.dumps(param,ensure_ascii=False)) return json.dumps(resu, ensure_ascii=False) # post @app.route(MY_URL + 'post/tasks', methods=['POST']) def post_task(): param = request.args.to_dict() # print(param) # request.args请求参数 # print(type(param)) 此处post仅支持一般使用方法 # print(param) push_mess(json.dumps(param,ensure_ascii=False)) return json.dumps(resu, ensure_ascii=False) #解决请求跨域问题 def after_request(resp): resp.headers['Access-Control-Allow-Origin'] = '*' return resp if __name__ == '__main__': app.after_request(after_request) app.run(debug=True, host='0.0.0.0', port=5000) # app.run(debug=True) host 0.0.0.0设置是都可以进行访问,port为对应内网端口 # http://127.0.0.1:5000/knowledge/api/v1/get/tasks?keystr=服务器上架&topN=3
注意导入相关类库,rabbitmq此处默认使用guest用户,密码也是初始状态。如果需要使用其他用户端口,可查看ConnectionParameters设置的相关参数介绍。mq队列相关设置建议先用ui界面设置好。
后续采用ck订阅消费请查看:https://www.cnblogs.com/MrYang-11-GetKnow/p/16397055.html。