在windchill中队列分:排程,汇聚,进程
进程:我们通常在需要立即执行的任务,队列一般以业务模块+ProcessQueue结尾,如commonProcessQueue;
排程:我们通常在需要计划性执行某些任务时使用,队列一般以业务名称+ScheduleQueue,如commonScheduleQueue
汇聚:用的比较少,理解为系统本身相关的任务,WfPropagationQueue,DeleteCompletedWorkItemsQueue,WfUserWorkQueue等任务
PS:代码中如果通过队列去调用某个方法,方法一定得是静态方法,参数不能是对象
如:
下面我们介绍一下如何通过代码获取队列
public static ProcessingQueue getQueue(final String queueName) throws WTException {
ProcessingQueue processingQueue = QueueHelper.manager.getQueue(queueName);
String user = "";
try {
user = SessionHelper.manager.getPrincipal().getName();
SessionHelper.manager.setAdministrator();
if (processingQueue == null) {
processingQueue = QueueHelper.manager.createQueue(queueName);
}
if (!processingQueue.isEnabled()) {
QueueHelper.manager.enableQueue(processingQueue, true);
QueueHelper.manager.startQueue(processingQueue);
}
} finally {
if (StringUtils.isNotBlank(user)) {
SessionHelper.manager.setPrincipal(user);
}
}
return processingQueue;
}
如何添加一个队列条目
public static boolean addEntry(String queueName,String methodName,
String className, Class[] argsType, Object[] args)
throws RemoteException, InvocationTargetException, WTException{
if (!RemoteMethodServer.ServerFlag) {
try {
Class[] argType = {Strin