我有一个包含文件夹日期明智的服务器,每个文件夹还包含许多文件(每个大小 200kb),其中包含特定日期的所有日志。我是 RabbitMQ 的新手,在浏览 RabbitMQ 的文档时,我在下面找到了 Producer 的代码
参考链接:https ://github.com/rabbitmq/rabbitmq-tutorials/blob/master/java/Send.java
public class Send {
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello World!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
channel.close();
connection.close();
}
}
在上面的代码中,我添加了示例字符串“Hello World!” 发布。如上面问题描述中所述,我必须从具有不同日期戳目录的服务器读取日志信息所以我需要编写一个简单的无限循环(因为日志不断更新)并递归读取所有目录和文件然后对于文件的每一行,我可以撰写一条消息,然后将其发布给接收者?
在这种情况下,我们的通道将永远不会关闭并且 Connection 将始终处于运行状态,这是 RabbitMQ 的空闲状态吗?
RabbitMQ 是否可以标记已读取的文件并且不再读取它,或者我需要以编程方式管理它,例如用一些不同的名称重命名文件和文件夹。我在想这可能是我们的程序在我处于任何文件中间时因电源故障或其他原因而终止,然后我如何保证记录不会重复?
任何其他实现这一目标的最佳方法对我来说都会有很大帮助。提前致谢。