我有一个服务器包含文件夹明智的日期和每个文件夹进一步包含许多文件(每个大小200kb)包含特定日子的所有日志。我是新来的RabbitMQ,经历的RabbitMQ的文档,同时我发现下面的代码为生产者我可以使用RabbitMQ将数据移至Amazon Kinesis流吗?
参考链接:“Hello World”的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();
}
}
在上面的代码我已经添加样本串发布。如上面在问题描述中所述,我必须从具有不同日期戳记目录的服务器读取日志信息因此,我是否需要编写简单的无限循环(因为日志不断更新)并递归读取所有目录和文件,然后对于文件的每一行,我可以编写一条消息,然后将其发布到接收方?
在这种情况下,我们的频道将永远不会关闭,连接将始终保持在RabbitMQ的闲置状态?
RabbitMQ有可能标记读取的文件并且不再读取它,或者我需要以编程方式管理它,如使用一些不同名称重命名文件和文件夹。我在想这可能是因为我们的程序在某些电源故障或某些文件被中断时会终止,然后如何保证记录不会被复制?
任何其他最好的方式来实现这一点对我来说是很大的帮助。提前致谢。
谢谢...要“处理文件列表”进行处理,我正在寻找一些现成的解决方案,因为我有父文件夹,并且将包含许多包含文件的文件夹。因为这些文件将继续生成,所以我正在寻找某种解决方案,在那里我可以配置根文件夹名称,并且如果在嵌套文件夹项目中发生任何变化,它会感知并不断将这些信息发送给RabbitMQ? – Sam
我想你将不得不实现这个逻辑来自己监听文件系统的变化。 –
似乎我用java 7功能得到了更好的东西。现在他们在file \目录下提供WatchService,并且我们可以接收文件create \ modify \ delete的事件。这使得我的工作变得简单而且对于监听文件系统更加强大。谢谢 – Sam