Package com.alibaba.otter.shared.arbitrate.impl.setl.monitor

Examples of com.alibaba.otter.shared.arbitrate.impl.setl.monitor.PermitMonitor


     *
     * @return
     */
    public EtlEventData await(Long pipelineId) throws InterruptedException {
        Assert.notNull(pipelineId);
        PermitMonitor permitMonitor = ArbitrateFactory.getInstance(pipelineId, PermitMonitor.class);
        permitMonitor.waitForPermit();// 阻塞等待授权

        ExtractStageListener extractStageListener = ArbitrateFactory.getInstance(pipelineId, ExtractStageListener.class);
        Long processId = extractStageListener.waitForProcess(); // 符合条件的processId

        ChannelStatus status = permitMonitor.getChannelPermit();
        if (status.isStart()) {// 即时查询一下当前的状态,状态随时可能会变
            // 根据pipelineId+processId构造对应的path
            String path = StagePathUtils.getSelectStage(pipelineId, processId);

            try {
View Full Code Here


    public void testPermit_init_ok() {// 测试下permit的初始化内容
        channelEvent.start(channelId);
        updateMainStem(pipelineId, MainStemEventData.Status.OVERTAKE);
        updateMainStem(oppositePipelineId, MainStemEventData.Status.OVERTAKE);

        permitMonitor = new PermitMonitor(pipelineId);
        boolean isPermit = permitMonitor.isPermit();
        want.bool(isPermit).is(true);
    }
View Full Code Here

    public void testPermit_init_fail() {// 测试下permit的初始化内容
        channelEvent.start(channelId);
        updateMainStem(pipelineId, MainStemEventData.Status.OVERTAKE);
        updateMainStem(oppositePipelineId, MainStemEventData.Status.TAKEING);// 一个节点挂起

        permitMonitor = new PermitMonitor(pipelineId);
        boolean isPermit = permitMonitor.isPermit();
        want.bool(isPermit).is(false);
    }
View Full Code Here

    public void testPermit_change() {
        channelEvent.start(channelId);
        updateMainStem(pipelineId, MainStemEventData.Status.OVERTAKE);
        updateMainStem(oppositePipelineId, MainStemEventData.Status.TAKEING);// 一个节点挂起

        permitMonitor = new PermitMonitor(pipelineId);
        boolean isPermit = permitMonitor.isPermit();
        want.bool(isPermit).is(false);

        updateMainStem(oppositePipelineId, MainStemEventData.Status.OVERTAKE);
        updateMainStem(pipelineId, MainStemEventData.Status.TAKEING);// 一个节点挂起
View Full Code Here

    @Test
    public void testPermit_wait() {
        channelEvent.start(channelId);
        updateMainStem(pipelineId, MainStemEventData.Status.OVERTAKE);
        updateMainStem(oppositePipelineId, MainStemEventData.Status.OVERTAKE);
        permitMonitor = new PermitMonitor(pipelineId);
        boolean isPermit = permitMonitor.isPermit();
        want.bool(isPermit).is(true);
        try {
            permitMonitor.waitForPermit();// 当前为permit=true,立马返回
        } catch (InterruptedException e) {
View Full Code Here

    public void testDemo() {
        // 设置启动标志
        channelEvent.start(channelId);
        sleep(); // 停顿一下

        PermitMonitor permit = ArbitrateFactory.getInstance(pipelineId, PermitMonitor.class);

        // 优先启动主导线程
        mainStem.submit(pipelineId);
        try {
            permit.waitForPermit();// 阻塞等待授权
        } catch (InterruptedException e1) {
            want.fail();
        }

        if (arbitrateMode.isZookeeper()) {
View Full Code Here

            MainStemEventData eventData = new MainStemEventData();
            eventData.setPipelineId(pipelineId);
            eventData.setStatus(MainStemEventData.Status.OVERTAKE);
            mainStemEvent.single(eventData);

            PermitMonitor permit = ArbitrateFactory.getInstance(pipelineId, PermitMonitor.class);
            permit.waitForPermit();// 阻塞等待授权
        } catch (InterruptedException e) {
            want.fail();
        }

        boolean check = mainStemEvent.check(pipelineId);
View Full Code Here

        sleep(); // 停顿一下

        // 优先启动主导线程
        mainStem.submit(pipelineId);

        PermitMonitor permit = ArbitrateFactory.getInstance(pipelineId, PermitMonitor.class);
        try {
            permit.waitForPermit();// 阻塞等待授权
        } catch (InterruptedException e1) {
            want.fail();
        }

        // 启动
View Full Code Here

        // sleep(); //停顿一下

        // 优先启动主导线程
        mainStem.submit(pipelineId);

        PermitMonitor permit = ArbitrateFactory.getInstance(pipelineId, PermitMonitor.class);
        try {
            permit.waitForPermit();// 阻塞等待授权
        } catch (InterruptedException e1) {
            want.fail();
        }

        // 启动
View Full Code Here

        TerminEventData rollback = new TerminEventData();
        rollback.setPipelineId(pipelineId);
        rollback.setType(TerminType.ROLLBACK);
        terminEvent.single(rollback);

        PermitMonitor monitor = ArbitrateFactory.getInstance(pipelineId, PermitMonitor.class);
        want.bool(monitor.getChannelPermit(true).isPause()).is(true);

        destoryTermin();
        ArbitrateFactory.destory(pipelineId);
    }
View Full Code Here

TOP

Related Classes of com.alibaba.otter.shared.arbitrate.impl.setl.monitor.PermitMonitor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.