package xin.glue.scheduling; import java.util.TimerTask; import org.apache.log4j.Logger; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.biz.control.PosBizProvider; import com.posdata.glue.context.PosContext; public class XinParseTask extends TimerTask { private final Logger logger = Logger.getLogger(this.getClass().getName()); private String[] serviceNames; public XinParseTask(String serviceNames) { super(); this.serviceNames = serviceNames.replace(" ", "").split(","); for(int i = 0; i < this.serviceNames.length; i++) { String serviceName = this.serviceNames[i]; if (!serviceName.endsWith("-service")) this.serviceNames[i] = serviceName + "-service"; } } public void run() { try { for(int i = 0; i < this.serviceNames.length; i++) { String serviceName = this.serviceNames[i]; boolean isRunning = true; while (isRunning) { PosContext context = new PosContext(); context.put(PosBizControlConstants.SERVICE_NAME, serviceName); PosBizProvider.getController().doAction(context); isRunning = "true".equals(context.get("_hasRec_")); } } } catch (Exception e) { logger.error(e.getMessage()); try { Thread.sleep(5 * 60 * 1000); } catch (InterruptedException e1) { } } } }