我有一個服務器包含文件夾明智的日期和每個文件夾進一步包含許多文件(每個大小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