亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? editsectiongroupreader.java

?? 爬蟲數(shù)據(jù)的改進,并修正了一些bug
?? JAVA
字號:
/* Copyright (c) 2003 The Nutch Organization.  All rights reserved.   */
/* Use subject to the conditions in http://www.nutch.org/LICENSE.txt. */
package net.nutch.db;

import java.io.*;
import java.util.*;
import java.util.logging.*;

import net.nutch.io.*;
import net.nutch.fs.*;
import net.nutch.util.*;

/*********************************************************
 * The EditSectionGroupReader will read in an edits-file that
 * was built in a distributed way.  It acts as a "meta-SequenceFile",
 * incorporating knowledge of Section numbering as well as
 * process-synchronization.  If you had different ideas
 * about how to make the db-edits distributed (apart from using
 * NFS), you'd implement them here.
 *
 * @author Mike Cafarella
 *********************************************************/
public class EditSectionGroupReader {
    static final Logger LOG = LogFormatter.getLogger("net.nutch.db.EditSectionGroupReader");
    private final static String MERGED_EDITS = "merged_edits";
    private final static int SLEEP_INTERVAL = 3000;
    private final static int WORRY_INTERVALS = 5;

    NutchFileSystem nfs;
    String label;
    int readerNum = -1, totalMachines = -1, numEdits = 0;
    boolean sectionComplete = false;

    /**
     * Open the EditSectionGroupReader for the appropriate file.
     */
    public EditSectionGroupReader(NutchFileSystem nfs, String label, int readerNum, int totalMachines) {
        this.nfs = nfs;
        this.label = label;
        this.readerNum = readerNum;
        this.totalMachines = totalMachines;
    }

    /**
     * Block until all contributions to the EditSection are present
     * and complete.  To figure out how many contributors there are,
     * we load the meta-info first (which is written at section-create
     * time).
     */
    private synchronized void sectionComplete() throws IOException { 
        if (! sectionComplete) {
            //
            // Make sure that every contributor's file is present.
            // When all are present, we know this section is complete.
            //
            for (int i = 0; i < totalMachines; i++) {
                // Create the files we're interested in
                File allEditsDir = new File("editsection." + readerNum, "editsdir." + i);
                File editsDir = new File(allEditsDir, label);
                File editsList = new File(editsDir, "editslist");
                File editsInfo = new File(editsDir, "editsinfo");

                // Block until the editsInfo file appears
                while (! nfs.exists(editsInfo)) {
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException ie) {
                    }
                }

                // Read in edit-list info
                DataInputStream in = new DataInputStream(nfs.open(editsInfo));
                try {
                    in.read();                 // version
                    this.numEdits += in.readInt();  // numEdits
                } finally {
                    in.close();
                }
            }
            sectionComplete = true;
        }
    }


    /**
     * Return how many edits there are in this section.  This
     * method requires total section-completion before executing.
     */
    public int numEdits() throws IOException {
        sectionComplete();
        return numEdits;
    }

    /**
     * Merge all the components of the Section into a single file
     * and return the location.  This method requires total section-
     * completion before executing.
     */
    public void mergeSectionComponents(File mergedEditsFile) throws IOException {
        // Wait till all edit-contributors are done.
        sectionComplete();

        //
        // Figure out the keyclass
        //
        File allEdits0 = new File("editsection." + readerNum, "editsdir." + 0);
        File editsDir0 = new File(allEdits0, label);
        File editsList0 = new File(editsDir0, "editslist");
        while (! nfs.exists(editsList0)) {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException ie) {
            }
        }

        SequenceFile.Reader test = new SequenceFile.Reader(nfs, editsList0.getPath());
        Class keyClass = null;
        try {
            keyClass = test.getKeyClass();
        } finally {
            test.close();
        }

        //
        // Now write out contents of each contributor's file
        //
        try {
            Writable key = (Writable) keyClass.newInstance();
            SequenceFile.Writer out = new SequenceFile.Writer(nfs, mergedEditsFile.getPath(), keyClass, NullWritable.class);

            try {
                for (int i = 0; i < totalMachines; i++) {
                    File allEditsDir = new File("editsection." + readerNum, "editsdir." + i);
                    File editsDir = new File(allEditsDir, label);
                    File editsList = new File(editsDir, "editslist");
                    while (! nfs.exists(editsList)) {
                        try {
                            Thread.sleep(2000);
                        } catch (InterruptedException ie) {
                        }
                    }

                    SequenceFile.Reader in = new SequenceFile.Reader(nfs, editsList.getPath());
                    try {
                        while (in.next(key)) {
                            out.append(key, NullWritable.get());
                        }
                    } finally {
                        in.close();
                    }
                }
            } finally {
                out.close();
            }
        } catch (InstantiationException ie) {
            throw new IOException("Could not create instance of " + keyClass);
        } catch (IllegalAccessException iae) {
            throw new IOException("Could not create instance of " + keyClass);
        }
    }

    /**
     * Get rid of the edits encapsulated by this file.
     */
    public void delete() throws IOException {
        for (int i = 0; i < totalMachines; i++) {
            // Delete the files we're interested in
            File editsDir = new File("editsection." + readerNum, "editsdir." + i);
            File consumedEdits = new File(editsDir, label);
            nfs.delete(consumedEdits);
        }
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人自拍偷拍| 99视频精品全部免费在线| 亚洲综合在线免费观看| 一区在线播放视频| 亚洲欧美一区二区视频| 亚洲图片激情小说| 亚洲欧美日韩久久| 一区二区三区在线免费观看| 一区二区三区在线观看欧美| 亚洲成年人网站在线观看| 亚洲成人免费电影| 美女网站视频久久| 精品一区二区免费| 国产精品一区一区| eeuss鲁一区二区三区| 色综合色综合色综合色综合色综合| www.亚洲精品| 欧洲一区二区三区免费视频| 欧美日韩一级黄| 日韩精品一区二区三区四区视频| 精品国产乱码久久久久久浪潮| 2022国产精品视频| 国产精品福利电影一区二区三区四区| 亚洲视频在线一区观看| 亚洲一区二区精品3399| 天天av天天翘天天综合网色鬼国产| 日韩精品电影在线观看| 激情图片小说一区| www.成人网.com| 欧美精选一区二区| 久久久久免费观看| 亚洲精品国产精品乱码不99| 水野朝阳av一区二区三区| 国产在线精品视频| 99久久精品久久久久久清纯| 欧美日韩免费视频| 亚洲精品一区二区三区香蕉| 国产精品久久久久9999吃药| 亚洲午夜在线观看视频在线| 黄色日韩三级电影| 色综合网色综合| 日韩午夜三级在线| 亚洲人成小说网站色在线| 肉丝袜脚交视频一区二区| 国精品**一区二区三区在线蜜桃| 99久久综合99久久综合网站| 欧美精品久久一区二区三区| 国产精品污网站| 午夜精品久久久久影视| 成人手机电影网| 欧美一区二区三区在线视频| 国产精品乱码一区二三区小蝌蚪| 午夜精品久久久久久久| 高清久久久久久| 在线播放91灌醉迷j高跟美女| 国产午夜亚洲精品不卡| 亚洲电影你懂得| gogo大胆日本视频一区| 精品少妇一区二区三区视频免付费 | 9久草视频在线视频精品| 91精品国产综合久久蜜臀| 中文字幕在线视频一区| 免费黄网站欧美| 在线观看视频欧美| 日本一区二区动态图| 老司机午夜精品99久久| 欧美最新大片在线看| 亚洲国产电影在线观看| 国内精品视频一区二区三区八戒| 欧美日韩亚洲综合一区二区三区| 国产精品伦理在线| 国产老女人精品毛片久久| 欧美一区二区三区思思人| 亚洲最大成人综合| 不卡电影免费在线播放一区| 久久久噜噜噜久噜久久综合| 毛片av一区二区| 欧美日韩1区2区| 亚洲乱码日产精品bd| 成人av高清在线| 国产亚洲美州欧州综合国| 狠狠色丁香久久婷婷综| 欧美一级理论性理论a| 夜夜精品视频一区二区 | 久久精品人人做| 久久99精品久久久久久| 69p69国产精品| 午夜精品久久久久久久99樱桃 | 国产精品国产三级国产有无不卡| 国产在线一区观看| 日韩美女天天操| 蜜桃精品视频在线| 8v天堂国产在线一区二区| 亚洲自拍偷拍综合| 欧美三级视频在线播放| 亚洲精品欧美在线| 欧美天堂一区二区三区| 亚洲综合精品自拍| 欧美日韩一级大片网址| 亚洲电影在线免费观看| 欧美日韩一级二级三级| 午夜精品久久久久久不卡8050| 欧美日韩视频第一区| 亚洲成人激情综合网| 欧美日韩一区二区三区在线| 婷婷中文字幕一区三区| 欧美高清性hdvideosex| 奇米精品一区二区三区四区| 69av一区二区三区| 久久不见久久见免费视频7| 精品国产免费久久| 福利一区二区在线观看| 国产精品污www在线观看| 93久久精品日日躁夜夜躁欧美| 亚洲欧美日韩久久| 欧美日精品一区视频| 青青青爽久久午夜综合久久午夜| 日韩区在线观看| 国产激情精品久久久第一区二区| 国产精品情趣视频| 91污在线观看| 天天色综合天天| 久久婷婷国产综合精品青草| 成人av网站在线观看免费| 一区二区三区在线观看视频| 制服丝袜av成人在线看| 国产精品一区二区黑丝| 日韩美女视频一区| 欧美美女bb生活片| 国产伦精品一区二区三区免费| 国产精品国产成人国产三级| 欧美视频一区二区三区四区| 美女一区二区三区在线观看| 国产欧美日韩精品在线| 欧美性猛交xxxxxx富婆| 蜜臀国产一区二区三区在线播放 | 夜夜精品浪潮av一区二区三区| 欧美电影在线免费观看| 国产成人亚洲综合a∨婷婷| 亚洲欧美日韩在线| 精品美女一区二区| 91在线码无精品| 麻豆国产精品视频| 国产精品久久久久久久久久免费看| 欧美视频精品在线观看| 精品无人码麻豆乱码1区2区 | 久久网站最新地址| 91九色02白丝porn| 精品一区二区三区免费毛片爱 | 青青青爽久久午夜综合久久午夜| 国产日韩av一区二区| 在线免费亚洲电影| 国产精品自在在线| 亚洲一二三四区不卡| 国产亚洲欧美日韩在线一区| 欧美日韩视频在线一区二区| 丰满少妇久久久久久久| 男女性色大片免费观看一区二区| 1000部国产精品成人观看| 欧美r级在线观看| 欧美视频日韩视频在线观看| 成人在线视频一区| 秋霞电影网一区二区| 亚洲情趣在线观看| 国产视频一区在线观看| 欧美一区二区日韩| 色哟哟日韩精品| 国产成人免费av在线| 日韩av不卡一区二区| 亚洲码国产岛国毛片在线| 久久色成人在线| 69精品人人人人| 欧美网站一区二区| 一本一道久久a久久精品| 国产精品中文有码| 美美哒免费高清在线观看视频一区二区| 亚洲女女做受ⅹxx高潮| 久久九九国产精品| 日韩亚洲欧美一区| 欧美男女性生活在线直播观看| 97精品国产露脸对白| 成人免费的视频| 精品一二线国产| 久热成人在线视频| 偷拍自拍另类欧美| 亚洲国产欧美日韩另类综合| 日韩美女精品在线| 国产精品二三区| 国产精品每日更新在线播放网址 | 亚洲一区二区精品视频| 亚洲视频一区二区在线观看| 国产三区在线成人av| 精品国产亚洲一区二区三区在线观看| 911精品国产一区二区在线| 91九色最新地址| 欧洲精品一区二区| 色天天综合色天天久久| 一本色道久久综合狠狠躁的推荐| 91在线视频播放地址| 91麻豆国产精品久久|