0

別のリモート ノードでファイルが変更されたときに、リモート ノードでプロセスをトリガーする必要があります。シナリオはこんな感じ。リモート ノードで不明な時間に実行されている cron があります。Cron は、同じノード内のいくつかのファイルを変更するプロセスをトリガーします。私がする必要があるのは、これらのファイルが変更されたときに、それらのファイルの解析を実行し、別のリモート ノードのデータベースに入力する必要があるということです。

どうすればこれを実現できますか。ノードでファイルがいつ変更されたかを把握し、別のノードで変更が見つかったときに .sh ファイルをトリガーする方法。

4

2 に答える 2

2

java7 WatchService は要件を満たしています。コードは次のとおりです。

    WatchService watchService=FileSystems.getDefault().newWatchService();  
    Paths.get("/opt").register(watchService,   
            StandardWatchEventKinds.ENTRY_CREATE,  
            StandardWatchEventKinds.ENTRY_DELETE,  
            StandardWatchEventKinds.ENTRY_MODIFY);  
    while(true)  
    {  
        WatchKey key=watchService.take();  
        for(WatchEvent<?> event:key.pollEvents())  
        {  
            System.out.println(event.context()+" happen "+event.kind());  
        }  
        if(!key.reset())  
        {  
            break;  
        }  
    }
于 2014-08-28T08:30:12.717 に答える