⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tasktest.java

📁 OBPM是一个开源
💻 JAVA
字号:
package cn.myapps.core.task.ejb;

import java.util.Calendar;

import junit.framework.TestCase;
import cn.myapps.base.dao.PersistenceUtils;
import cn.myapps.base.dao.SessionSignal;
import cn.myapps.core.macro.runner.JavaScriptRunner;
import cn.myapps.util.sequence.Sequence;

public class TaskTest extends TestCase{

	public void testTaskRunning() throws Exception {
		Calendar c = Calendar.getInstance();
		for (int i = 0; i < 100; i++) {
			Task task = new Task();
			task.setId(Sequence.getSequence());
			task.setPeriod(TaskConstants.REPEAT_TYPE_DAILY);
			
			c.roll(Calendar.SECOND, 50);
			task.setRunningTime(c.getTime());
//			task.setRunningTime(new Date());
			task.setType(TaskConstants.TASK_TYPE_SCRIPT);
			task.setName(i+"");
			task
					.setTaskScript("var v="
							+ i
							+ ";java.lang.System.out.print('v='+v);" 
							+
									"for(var n=0;n<10000;n++);java.lang.System.out.println('-->'+v);");

			Thread t = new TestThread(task) ;
			t.setName("ThreadName:"+i);
			t.start();
		}
		
	}

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		TaskTest test = new TaskTest();test.
		testTaskRunning();
	}		

}


class TestThread extends Thread {
	Task task;
	TestThread(Task task) {
		this.task = task;
	}
	
	public void run() {
		while(true) {
			// 符合停止条件则停止
			try {
				if (task.isExpired()) {

					SessionSignal signal = PersistenceUtils
							.getSessionSignal();
//					signal.sessionSignal++;
					try {
						task.execute();

					} catch (Exception e) {
						e.printStackTrace();
					} finally {

//						signal.sessionSignal--;
//						if (signal.sessionSignal <= 0) {
							try {
								PersistenceUtils.closeSession();
								JavaScriptRunner.clear();
							} catch (Exception e) {
							}
//						}
					}
				}
				
				sleep(1000);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}

⌨️ 快捷键说明

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