我们提供消息推送系统招投标所需全套资料,包括消息推送系统介绍PPT、消息推送系统产品解决方案、
消息推送系统产品技术参数,以及对应的标书参考文件,详请联系客服。
from flask import Flask, request, jsonify
import pika
app = Flask(__name__)
# RabbitMQ连接配置
RABBITMQ_HOST = 'localhost'
RABBITMQ_QUEUE = 'message_queue'
def send_message(message):
connection = pika.BlockingConnection(pika.ConnectionParameters(host=RABBITMQ_HOST))
channel = connection.channel()
channel.queue_declare(queue=RABBITMQ_QUEUE)
channel.basic_publish(exchange='', routing_key=RABBITMQ_QUEUE, body=message)
connection.close()
@app.route('/send', methods=['POST'])
def send():
data = request.get_json()
message = data.get('message')
if not message:
return jsonify({"error": "Missing message"}), 400
send_message(message)
return jsonify({"status": "success", "message": "Message sent"}), 200
if __name__ == '__main__':
app.run(debug=True)
]]>
from celery import Celery
celery_app = Celery('tasks', broker='pyamqp://guest@localhost//')
@celery_app.task(bind=True, max_retries=3)
def retry_send(self, message):
try:
send_message(message)
except Exception as exc:
self.retry(exc=exc)
print(f"Retrying after failure: {exc}")
raise self.retry(countdown=2**self.request.retries)
]]>
import logging
logging.basicConfig(level=logging.INFO)
@app.route('/send', methods=['POST'])
def send():
data = request.get_json()
message = data.get('message')
if not message:
return jsonify({"error": "Missing message"}), 400
logging.info(f"Sending message: {message}")
retry_send.delay(message)
return jsonify({"status": "success", "message": "Message sent"}), 200
]]>