定时任务

注意

1、timeZone支持标准时区列表,标准时区列表请参考wiki

定时任务管理器

ACTimerTaskMgr mgr = ac.timerTaskMgr(ac.newContext());

addTask

//添加定时任务
ACTimerTask task = new ACTimerTask();
task.setName("test-timer-task");
task.setDescription("test-timer-task");
Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getDefault()); //设置时区
c.add(Calendar.DAY_OF_MONTH, 1);
task.setTimePoint(c);
task.setTimeCycle("month");
task.setUser(userId);
task.setDevice(deviceId);
String bytes = "aaaaa";
ACDeviceMsg msg = new ACDeviceMsg(71, bytes.getBytes());
task.setDeviceMessage(msg);
task = mgr.addTask(task);

deleteTask

//删除定时任务
mgr.deleteTask(task.getDevice(), task.getTaskId());

modifyTask

//修改定时任务
task.setName("new-test-timer-task");
mgr.modifyTask(task.getTaskId(), task);

startTask

//启动定时任务
mgr.startTask(task.getDevice(), task.getTaskId());

stopTask

//停止定时任务
mgr.stopTask(task.getDevice(), task.getTaskId());

listTasks

//列出定时任务
ArrayList<ACTimerTask> list = mgr.listTasks(deviceId);

时区问题说明

||SKIP||

java所支持的时区列表是标准时区列表的一个超集,所以使用java的接口设置时区时需要注意时区ID是否是标准时区ID

正面示例

Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("Etc/GMT-8")); //东八区,标准时区ID,支持

反面示例

Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8")); //东八区,非标准时区ID,不支持