import pika
import sys

# 从命令行参数获取发送次数
# sys.argv[0] 是脚本名本身, sys.argv[1] 是第一个参数
if len(sys.argv) < 2:
    print("用法: python3 send.py <消息次数>")
    sys.exit(1)

try:
    message_count = int(sys.argv[1])
except ValueError:
    print("错误: 消息次数必须是一个整数。")
    sys.exit(1)

# 连接到 RabbitMQ
connection = pika.BlockingConnection(
    pika.ConnectionParameters(
        host='192.168.66.221',
        credentials=pika.PlainCredentials('admin', '123456')
    )
)
channel = connection.channel()

# 声明队列
channel.queue_declare(queue='test_queue', durable=True)

print(f"准备发送 {message_count} 条消息到 'test_queue'...")

# 使用循环发送消息
for i in range(message_count):
    message = f"Hello RabbitMQ! 这是第 {i+1} 条消息。"
    
    channel.basic_publish(exchange='',
                          routing_key='test_queue',
                          body=message,
                          properties=pika.BasicProperties(
                              delivery_mode=2,  # 消息持久化
                          ))

print(f"{message_count} 条消息已全部发送完毕。")

connection.close()
