nutch中如果想想对一个文件实现独享,可以使用文件锁

下面介绍一下文件锁的使用方法:

(1)创建文件锁:

    FileSystem fs = FileSystem.get(getConf());
    Path lock = new Path(crawlDb, LOCK_NAME);
    LockUtil.createLockFile(fs, lock, force);


getConf()获得当前job的配置文件Configuration类实例,用该实例创建一个fs;然后创建文件锁的路径,crawlDb是要锁的文件夹,LOCK_NAME是锁的名字;最后调用LockUtil的静态方法createLockFile()创建文件锁。

(2)对文件使用完毕后,要及时删除文件锁,如果不删除,则后面对该路径文件的将会无法进行操作:

    Path lock = new Path(crawlDb, LOCK_NAME);
    LockUtil.removeLockFile(fs, lock);

得到该文件夹的文件锁路径;调用LockUtil的removeLockFile()函数删除该文件锁。

 

备注:对一个文件的文件锁都是相同的名字,都是以.locked结尾的,如果不同名其他程序检测不到该锁。

下面是一个添加了文件锁,但未删除的路径:

nutch中如果想想对一个文件实现独享,可以使用文件锁_第1张图片


 

 

你可能感兴趣的:(Path)