pollrates.java

来自「使用spring构建一个简单的工作流引擎」· Java 代码 · 共 63 行

JAVA
63
字号

package org.iocworkflow.test.sequence.ratedrop;

import java.math.BigDecimal;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.iocworkflow.BaseActivity;
import org.iocworkflow.ProcessContext;

/**
 * Class:PollRates Creation Date: Mar 12, 2005 CVS ID $Id:$
 * 
 * Simulate the polling to activley check for stimuli to the workflow process
 * 
 * @author sdodge
 * @since $Date:$
 */
public class PollRates extends BaseActivity {

    private Log log = LogFactory.getLog(PollRates.class);

    //Not thread safe, but for this example, it won't hurt.
    private Long startTime;

    private static final long maxTime = 5000;

    /*
     * (non-Javadoc)
     * 
     * @see org.iocworkflow.Activity#execute(org.iocworkflow.ProcessContext)
     */
    public ProcessContext execute(ProcessContext context) throws Exception {

        log.debug("--- Polling for changes in rates ---");
        if (startTime == null)
            startTime = new Long(System.currentTimeMillis());
        long now = System.currentTimeMillis();
        if ((now - startTime.longValue()) > maxTime) {
            log.debug("  !! Rate increase Found, kick off workflow processor !!");
            startTime = null;
            ((RateDropContext) context).setSeedData(createSeedData());

        } else {
            log.debug("   no rate drop found :( ");
            ((RateDropContext) context).setStopEntireProcess(true);
        }

        return context;
    }
    
    private AirlineRouteSeedData createSeedData() {
        AirlineRouteSeedData seed = new AirlineRouteSeedData();
        seed.setAirlineId(new Integer(14));
        seed.setAirlineName("Poll-Jet");
        seed.setRateDrop(new BigDecimal("93.65"));
        seed.setRouteId(new Integer(147));
        seed.setRouteOrigin("DFW");
        seed.setRouteDestination("LAX");
        return seed;
    }    

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?