a8eee00a0b575d663a07c61819183f949a7265ae.svn-base 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package xin.glue.scheduling;
  2. import java.util.TimerTask;
  3. import org.apache.log4j.Logger;
  4. import com.posdata.glue.biz.constants.PosBizControlConstants;
  5. import com.posdata.glue.biz.control.PosBizProvider;
  6. import com.posdata.glue.context.PosContext;
  7. public class XinParseTask extends TimerTask {
  8. private final Logger logger = Logger.getLogger(this.getClass().getName());
  9. private String[] serviceNames;
  10. public XinParseTask(String serviceNames) {
  11. super();
  12. this.serviceNames = serviceNames.replace(" ", "").split(",");
  13. for(int i = 0; i < this.serviceNames.length; i++) {
  14. String serviceName = this.serviceNames[i];
  15. if (!serviceName.endsWith("-service"))
  16. this.serviceNames[i] = serviceName + "-service";
  17. }
  18. }
  19. public void run() {
  20. try {
  21. for(int i = 0; i < this.serviceNames.length; i++) {
  22. String serviceName = this.serviceNames[i];
  23. boolean isRunning = true;
  24. while (isRunning) {
  25. PosContext context = new PosContext();
  26. context.put(PosBizControlConstants.SERVICE_NAME, serviceName);
  27. PosBizProvider.getController().doAction(context);
  28. isRunning = "true".equals(context.get("_hasRec_"));
  29. }
  30. }
  31. } catch (Exception e) {
  32. logger.error(e.getMessage());
  33. try {
  34. Thread.sleep(5 * 60 * 1000);
  35. } catch (InterruptedException e1) {
  36. }
  37. }
  38. }
  39. }