1.指定包下创建队列方法类--CreateQueueForTest;

2.定义队列执行业务类--TestCreateQueue,编写具体业务方法;

3.启动windchill服务,在windchill shell中执行以下命令,创建排程队列并启动生效;

执行以下命令:

windchill com.cn.common.queue.CreateQueueForTest test

附具体类demo:

package cn.com.common.queue;import java.sql.Timestamp;
import java.util.Enumeration;import org.apache.log4j.Logger;import wt.fc.PersistenceHelper;
import wt.fc.QueryResult;
import wt.log4j.LogR;
import wt.org.OrganizationServicesHelper;
import wt.org.WTPrincipalReference;
import wt.org.WTUser;
import wt.pds.StatementSpec;
import wt.query.QuerySpec;
import wt.query.SearchCondition;
import wt.scheduler.ScheduleItem;
import wt.scheduler.SchedulingHelper;
import wt.util.WTException;/*** @description 创建定时队列--排程* @author zhenqingshi** @date 2020年10月24日*/
public class CreateQueueForTest {private static final Logger logger = LogR.getLogger(TestCreateQueue.class.getName());/*** @description* @author Lin* @date 2020年10月24日* @param args* @throws WTException*/public static void main(String[] args) throws WTException {// RemoteMethodServer rms = RemoteMethodServer.getDefault();// GatewayAuthenticator auth = new GatewayAuthenticator();// auth.setRemoteUser("wcadmin");// rms.setAuthenticator(auth);if ("test".equals(args[0])) {QueryResult queryResult1 = getScheduleItem("update kucun", "sap1");while (queryResult1.hasMoreElements()) {ScheduleItem scheduleItem = (ScheduleItem) queryResult1.nextElement();// 删除系统中已存在的队列PersistenceHelper.manager.delete(scheduleItem);}createScheduleQueue1();}}public static QueryResult getScheduleItem(String schedule_item_name, String Schedule_queque_name)throws WTException {QuerySpec queryspec = new QuerySpec(ScheduleItem.class);queryspec.appendWhere(new SearchCondition(ScheduleItem.class, ScheduleItem.ITEM_NAME, SearchCondition.EQUAL,schedule_item_name), new int[] { 0 });queryspec.appendAnd();queryspec.appendWhere(new SearchCondition(ScheduleItem.class, ScheduleItem.QUEUE_NAME, SearchCondition.EQUAL,Schedule_queque_name), new int[] { 0 });// queryspec.appendOrderBy(ScheduleItem.class, ScheduleItem.START_DATE,// true);QueryResult queryResult = PersistenceHelper.manager.find((StatementSpec) queryspec);logger.info(">>>" + queryspec);logger.info(">>>" + queryResult.size());return queryResult;}public static void createScheduleQueue1() throws WTException {System.out.println("开始创建计划执行队列... ...");// 创建计划队列对象ScheduleItem si = ScheduleItem.newScheduleItem();// 设置该队列的描述信息si.setItemName("lqtCreateQueueTest");si.setItemDescription("测试计划队列执行");// 设置队列的名称,一般以英文命名si.setQueueName("timingQueueTest");// 设置要执行的类和方法// 类名si.setTargetClass(TestCreateQueue.class.getName());// 方法名si.setTargetMethod("queueTest");si.setToBeRun(-1l);// 设置开始时间,在这里我设置为队列创建后立即执行Timestamp timestamp = Timestamp.valueOf("2020-10-24 00:00:00.000"); // 设置2020年10月24号// 2点开始执行si.setStartDate(timestamp);// 设置执行周期,这里设置为每隔24小时执行一次 86400si.setPeriodicity(300);// 设置执行该任务的用户,如果是操作Windchill对象的话会牵扯到权限控制,这里设置为管理员执行WTUser administrator = getUserFromName("Administrator");si.setPrincipalRef(WTPrincipalReference.newWTPrincipalReference(administrator));// 最后,将计划任务对象添加到队列si = SchedulingHelper.service.addItem(si, null);logger.info("计划执行队列创建完毕... ..." + "'启动时间为'" + si.getStartDate() + "',间隔为'" + si.getPeriodicity() + "'!");}@SuppressWarnings("deprecation")public static WTUser getUserFromName(String name) throws WTException {Enumeration<?> enumUser = OrganizationServicesHelper.manager.findUser(WTUser.NAME, name);WTUser user = null;if (enumUser.hasMoreElements())user = (WTUser) enumUser.nextElement();if (user == null) {enumUser = OrganizationServicesHelper.manager.findUser(WTUser.FULL_NAME, name);if (enumUser.hasMoreElements())user = (WTUser) enumUser.nextElement();}if (user == null) {throw new WTException("系统中不存在用户名为'" + name + "'的用户!");}return user;}
}
package com.cn.common.queue;import java.util.Date;import org.apache.log4j.Logger;import wt.log4j.LogR;public class TestCreateQueue {private static final Logger logger = LogR.getLogger(TestCreateQueue.class.getName());public static void queueTest() {Date date = new Date();logger.info("======计划队列正在执行====" + date);}
}

windchill创建定时队列执行相关推荐

  1. oracle创建job一年执行,Oracle快速创建定时job执行批量转储过程脚本参考案例

    -- 创建短信批量转储存储过程,将已经发送的短信转移至短信历史表 create or replace procedure PUB_SHORTMSG_ARCH_BAT as MSG_ID pub_sho ...

  2. android 实现定时通知,在Android中创建定时通知(例如,针对事件)

    对于某些Android应用程序,我想集成以下功能: 用户可以定义他想要被提醒的时间.当时间到了,应用程序应该在通知栏中创建通知,即使此时用户没有使用该应用程序. 为此,需要查看AlarmManager ...

  3. JAVA编码(41)—— 线程池队列执行任务(ThreadPoolQueue)(1)

    废话少说,上代码 package com.sinosoft;import java.util.concurrent.*;/*** Created by xushuyi on 2017/4/9.*/ p ...

  4. PostgreSQL中定时job执行(pgAgent)

    PostgreSQL中定时job执行 业务分析 近期项目需要定期清理数据库中的多余数据,即每月1号删除指定表中一年以上的数据.  初步分析这种定时job可以使用一下两种技术实现: Linux的cron ...

  5. PHP定时任务 - PHP自动定时循环执行任务实例代码

    PHP定时任务已使用测试,现在已经趋于稳定,效果良好.本功能需要配合监控宝,360监控等使用.创建监控WEB项目,指定到任务主文件URL!如果没有Memcache可以创建text文件写入time替代! ...

  6. linux脚本简单定时,shell之定时周期性执行脚本的方法示例

    示例 1.编写测试脚本脚本 time .sh $ cat time.sh #! /bin/bash echo $(date +%s) >> /home/ocean/out.txt 保存完毕 ...

  7. Linux中的定时自动执行功能(at,crontab)

    Linux中的定时自动执行功能(at,crontab) 概念 在Linux系统中,提供了两种提前对工作进行安排的方式 at 只执行一次 crontab 周期性重复执行 通过对这两个工具的应用可以让我们 ...

  8. RabbitMQ创建死信队列

    向Queue_TTL队列里发送消息,10秒后当消息没有被正常消费掉则消息过期被转发至 Queue_DLX死信队列 const amqp = require('amqplib');async funct ...

  9. ScheduledExecutorService scheduleAtFixedRate、scheduleWithFixedDelay以及创建定时心跳

    scheduleAtFixedRate scheduleAtFixedRate按固定的周期调度,api如下 public ScheduledFuture<?> scheduleAtFixe ...

最新文章

  1. php tp 查数据库数据一条_php读取数据库乱码
  2. 积木履带机器人编程手册_学会编程,寓教于乐!ONEBOT 反履机甲图赏
  3. MATLAB求解常微分方程
  4. 【Servlet】Cookie应用:显示上次访问页面时间
  5. Java_StringBuffer类
  6. C语言,椰果数量问题,计算最少的椰果数
  7. Mr.J-- jQuery学习笔记(三十)--属性操作方法(添加删除)
  8. Oracle开源Fn,加入Serverless之争
  9. 一键解决WPS中的VBA支持库安装问题
  10. 小甲鱼c语言课后作业作业百度云,小甲鱼c语言视频教程
  11. [ExtJS] ExtJS颜色选择器
  12. 收藏——硬币(五大天王和四小龙)
  13. 中科大计算机辅助图形实验室,Prof. Ligang Liu at USTC (中科大刘利刚教授)
  14. 高绩效团队-VUCA时代的五个管理策略《三》—创新管理
  15. 经典的《Rework》
  16. WebRTC 非常适用于智能家庭安防摄像头
  17. 头牌知产介绍速冻水饺商标属于哪一类
  18. database-oracle
  19. Excel VBA中的If,Select循环语句
  20. 【XR-3】小道消息 (Comet OJ - Contest #9 X Round 3 )

热门文章

  1. ####haohaohao######基于知识库的问答KBQA:seq2seq模型实践
  2. 游戏测试用例设计思路和方法
  3. 代码演示神器——jsfiddle
  4. 关于数据库科学计数法显示问题
  5. 10种Python聚类算法完整操作示例(建议收藏
  6. Minecraft 1.12.2 生化8 模组 1.9版本改版大更新
  7. “云”筹帷幄 “数”治天下 天翼云的“智”与“志”
  8. 【python教程入门学习】几款Python编译器比较与推荐(小结)
  9. java runoob
  10. 拿下天下第一考的法考A证啦!