定时任务
注意:
1、timePoint的格式为
"yyyy-MM-dd HH:mm:ss"
,否则会失败。2、timeCycle需要在timePoint时间点的基础上,选择循环方式。
"once":单次循环
"hour":在每小时的
mm:ss
时间点循环执行"day":在每天的
HH:mm:ss
时间点循环执行"month":在每月的
dd HH:mm:ss
时间点循环执行"year":在每年的
MM-dd HH:mm:ss
时间点循环执行"week[0,1,2,3,4,5,6]":在每星期的
HH:mm:ss
时间点循环执行(如周一,周五重复,则表示为"week[1,5]")
设备定时任务
||SKIP||
定时管理器 -- ACDeviceTimerManager
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
添加定时任务
- (void)addDeviceTask {
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
/**
添加定时任务
定时任务从创建时刻开始默认开启状态, `timePoint`中只取比你的`timeCycle`下一级别的数据
timePoint的格式为统一标准格式, 但是实际使用的时候是向后解析, 即:
如果是week循环任务, 只需要关注`-18 16:39:03`; `2016-07` 不起作用, 只为统一格式
如果是day 循环任务, 只需要关注 `16:39:03`; `2016-07-18` 不起作用, 只为统一格式
其余的循环周期做同样处理
*/
ACTimeRule *timeRule = [[ACTimeRule alloc] initWithTimeZone:[NSTimeZone systemTimeZone]
timeCycle:@"week[1, 2, 3]"
timePoint:@"2016-07-18 16:39:03"];
//设置设备操作指令
//该指令为平台常用的`开灯`指令
Byte content[] = {0, 0, 0, 1};
NSData *binaryData = [NSData dataWithBytes:content length:sizeof(content)];
//入参请参考控制台中开发者建立的`数据包`和`数据点`
ACDeviceCommand *deviceCmd = [[ACDeviceCommand alloc] initWithCode:@"code" binaryData:binaryData];
ACDeviceTask *task = [[ACDeviceTask alloc] initWithName:@"taskName"
desc:@"taskDesc"
timeRule:timeRule
command:deviceCmd];
[deviceManager addTask:task callback:^(ACDeviceTask *task, NSError *error) {
if (error) {
//添加失败, 着重检查`ACDeviceCommand`和`ACTimeRule`中参数是否有问题
return;
}
//添加成功, 返回任务对象
}];
}
修改定时任务
- (void)modifyDeviceTask {
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
/**
修改设备定时任务
注: 修改是`覆盖修改`, 即以最后一次上传的数据为准, 以前的数据会被覆盖掉
参数`task`可通过`listTask`接口获取
*/
[deviceManager modifyTask:@"DeviceTask" callback:^(ACDeviceTask *task, NSError *error) {
if (error) {
//修改失败, 请检查入参`task`是否正确, `task`可通过`listTask`接口获取
return;
}
//修改成功, 修改后的设备定时任务对象
//注: 修改是`覆盖修改`, 即以最后一次上传的数据为准, 以前的数据会被覆盖掉
//修改后的定时任务默认是`开启`状态, 如需要关闭, 请调用`closeTask`接口
}];
}
开启定时任务
- (void)openDeviceTask {
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
/**
开启定时任务
入参`taskId`可通过`listTask`接口获取
*/
[deviceManager openTask:@"taskId" callback:^(NSError *error) {
if (error) {
//开启失败, 请检查入参`taskId`是否正确, `taskId`可通过`listTask`接口获取
return;
}
//开启定时任务成功
}];
}
关闭定时任务
- (void)closeDeviceTask {
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
/**
关闭定时任务
入参`taskId`可通过`listTask`接口获取
*/
[deviceManager closeTask:@"taskId" callback:^(NSError *error) {
if (error) {
//关闭失败, 请检查入参`taskId`是否正确, `taskId`可通过`listTask`接口获取
return;
}
//关闭定时任务成功
}];
}
删除定时任务
- (void)deleteDeviceTask {
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
/**
删除定时任务
入参`taskId`可通过`listTask`接口获取
*/
[deviceManager deleteTask:@"taskId" callback:^(NSError *error) {
if (error) {
//删除失败, 请检查入参`taskId`是否正确, `taskId`可通过`listTask`接口获取
return;
}
//删除定时任务成功
}];
}
设备定时任务组
||SKIP||
定时管理器 -- ACDeviceTimerManager
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
添加定时任务组
- (void)addDeviceTaskGroups {
//设备任务组
NSMutableArray *tasks = [NSMutableArray array];
//将任务添加到任务组
[tasks addObject:[self addTaskOne]];
[tasks addObject:[self addTaskTwo]];
//创建设备定时任务组
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
[deviceManager addtasks:tasks toGroup:@"groupName" callback:^(ACDeviceTaskGroup *taskGroup, NSError *error) {
if (error) {
//添加失败, 着重检查`ACDeviceCommand`和`ACTimeRule`中参数是否有问题
return;
}
//添加成功, 返回设备任务组对象
}];
}
//添加任务一
- (ACDeviceTask *)addTaskOne {
ACTimeRule *timeRule = [[ACTimeRule alloc] initWithTimeZone:[NSTimeZone systemTimeZone]
timeCycle:@"week[1, 2, 3]"
timePoint:@"2016-07-18 16:39:03"];
ACDeviceCommand *deviceCmd = [[ACDeviceCommand alloc] initWithCode:@"code" binaryData:@"binaryData"];
ACDeviceTask *task = [[ACDeviceTask alloc] initWithName:@"taskName1"
desc:@"taskDesc1"
timeRule:timeRule
command:deviceCmd];
return task;
}
//添加任务二
- (ACDeviceTask *)addTaskTwo {
ACTimeRule *timeRule = [[ACTimeRule alloc] initWithTimeZone:[NSTimeZone systemTimeZone]
timeCycle:@"once"
timePoint:@"2016-07-18 20:30:00"];
ACDeviceCommand *deviceCmd = [[ACDeviceCommand alloc] initWithCode:@"code" binaryData:@"binaryData"];
ACDeviceTask *task = [[ACDeviceTask alloc] initWithName:@"taskName2"
desc:@"taskDesc2"
timeRule:timeRule
command:deviceCmd];
return task;
}
修改定时任务组
- (void)modifyDeviceTaskGroup {
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
/**
修改设备定时任务组
注: 修改是`覆盖修改`, 即以最后一次上传的数据为准, 以前的数据会被覆盖掉
参数`task`可通过`listTaskGroup`接口获取
*/
[deviceManager modifyTaskGroup:@"taskGroup" callback:^(ACDeviceTaskGroup *taskGroup, NSError *error) {
if (error) {
//修改失败, 请检查入参`taskGroup`是否正确, `task`可通过`listTaskGroup`接口获取
return;
}
//修改成功, 修改后的设备定时任务对象
//注: 修改是`覆盖修改`, 即以最后一次上传的数据为准, 以前的数据会被覆盖掉
//修改后的定时任务默认是`开启`状态, 如需要关闭, 请调用`closeTaskGroup`接口
}];
}
开启定时任务组
- (void)openDeviceTaskGroup {
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
/**
开启定时任务组
入参`taskGroupId`可通过`listTaskGroup`接口获取
*/
[deviceManager openTaskGroup:@"taskGroupId" callback:^(NSError *error) {
if (error) {
//开启失败, 请检查入参`taskId`是否正确, taskGroupId`可通过`listTaskGroup`接口获取
return;
}
//开启定时任务组成功
}];
}
关闭定时任务组
- (void)closeDeviceTaskGroup {
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
/**
关闭定时任务组
入参`taskGroupId`可通过`listTaskGroup`接口获取
*/
[deviceManager closeTaskGroup:@"taskGroupId" callback:^(NSError *error) {
if (error) {
//关闭失败, 请检查入参`taskId`是否正确, taskGroupId`可通过`listTaskGroup`接口获取
return;
}
//关闭定时任务组成功
}];
}
删除定时任务组
- (void)deleteDeviceTaskGroup {
ACDeviceTimerManager *deviceManager = [[ACDeviceTimerManager alloc] initWithDeviceId:@"deviceId"];
/**
删除定时任务组
入参`taskGroupId`可通过`listTaskGroup`接口获取
*/
[deviceManager deleteTaskGroup:@"taskGroupId" callback:^(NSError *error) {
if (error) {
//删除失败, 请检查入参`taskId`是否正确, taskGroupId`可通过`listTaskGroup`接口获取
return;
}
//删除定时任务组成功
}];
}
用户定时任务
||SKIP||
定时管理器 -- ACUserTimerManager
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
添加定时任务
- (void)addUserTask {
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
/**
添加定时任务
定时任务从创建时刻开始默认开启状态, `timePoint`中只取比你的`timeCycle`下一级别的数据
timePoint的格式为统一标准格式, 但是实际使用的时候是向后解析, 即:
如果是week循环任务, 只需要关注`-18 16:39:03`; `2016-07` 不起作用, 只为统一格式
如果是day 循环任务, 只需要关注 `16:39:03`; `2016-07-18` 不起作用, 只为统一格式
其余的循环周期做同样处理
*/
ACTimeRule *timeRule = [[ACTimeRule alloc] initWithTimeZone:[NSTimeZone systemTimeZone]
timeCycle:@"week[1, 2, 3]"
timePoint:@"2016-07-18 16:39:03"];
/**
其中参数对应开发者控制台中`UDS管理`中的参数, 如果创建任务失败, 请核对参数是否与控制台参数一致
*/
ACUserCommand *userCmd = [[ACUserCommand alloc] initWithSubDomain:@"subDomain"
service:@"serviceName"
method:@"methodName"
params:@"param"];
ACUserTask *task = [[ACUserTask alloc] initWithName:@"taskName"
desc:@"taskDesc"
timeRule:timeRule
command:userCmd];
[userManager addTask:task callback:^(ACUserTask *task, NSError *error) {
if (error) {
//添加失败, 着重检查`ACUserCommand`和`ACTimeRule`中参数是否有问题
return;
}
//添加成功, 返回任务对象
}];
}
修改定时任务
- (void)modifyUserTask {
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
/**
修改用户定时任务
注: 修改是`覆盖修改`, 即以最后一次上传的数据为准, 以前的数据会被覆盖掉
参数`task`可通过`listTask`接口获取
*/
[userManager modifyTask:@"userTask" callback:^(ACUserTask *task, NSError *error) {
if (error) {
//修改失败, 请检查入参`task`是否正确, `task`可通过`listTask`接口获取
return;
}
//修改成功, 修改后的用户定时任务对象
//注: 修改是`覆盖修改`, 即以最后一次上传的数据为准, 以前的数据会被覆盖掉
//修改后的定时任务默认是`开启`状态, 如需要关闭, 请调用`closeTask`接口
}];
}
开启定时任务
- (void)openUserTask {
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
/**
开启定时任务
入参`taskId`可通过`listTask`接口获取
*/
[userManager openTask:@"taskId" callback:^(NSError *error) {
if (error) {
//开启失败, 请检查入参`taskId`是否正确, `taskId`可通过`listTask`接口获取
return;
}
//开启定时任务成功
}];
}
关闭定时任务
- (void)closeUserTask {
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
/**
关闭定时任务
入参`taskId`可通过`listTask`接口获取
*/
[userManager closeTask:@"taskId" callback:^(NSError *error) {
if (error) {
//关闭失败, 请检查入参`taskId`是否正确, `taskId`可通过`listTask`接口获取
return;
}
//关闭定时任务成功
}];
}
删除定时任务
- (void)deleteUserTask {
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
/**
删除定时任务
入参`taskId`可通过`listTask`接口获取
*/
[userManager deleteTask:@"taskId" callback:^(NSError *error) {
if (error) {
//删除失败, 请检查入参`taskId`是否正确, `taskId`可通过`listTask`接口获取
return;
}
//删除定时任务成功
}];
}
用户定时任务组
||SKIP||
添加定时任务组
- (void)addUserTaskGroups {
//用户任务组
NSMutableArray *tasks = [NSMutableArray array];
//将任务添加到任务组
[tasks addObject:[self addTaskOne]];
[tasks addObject:[self addTaskTwo]];
//创建用户定时任务组
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
[userManager addtasks:tasks toGroup:@"groupName" callback:^(ACUserTaskGroup *taskGroup, NSError *error) {
if (error) {
//添加失败, 着重检查`ACUserCommand`和`ACTimeRule`中参数是否有问题
return;
}
//添加成功, 返回用户任务组对象
}];
}
//添加任务一
- (ACUserTask *)addTaskOne {
ACTimeRule *timeRule = [[ACTimeRule alloc] initWithTimeZone:[NSTimeZone systemTimeZone]
timeCycle:@"week[1, 2, 3]"
timePoint:@"2016-07-18 16:39:03"];
ACUserCommand *userCmd = [[ACUserCommand alloc] initWithSubDomain:@"subDomain"
service:@"serviceName"
method:@"method"
params:@"param"];
ACUserTask *task = [[ACUserTask alloc] initWithName:@"taskName1"
desc:@"taskDesc1"
timeRule:timeRule
command:userCmd];
return task;
}
//添加任务二
- (ACUserTask *)addTaskTwo {
ACTimeRule *timeRule = [[ACTimeRule alloc] initWithTimeZone:[NSTimeZone systemTimeZone]
timeCycle:@"once"
timePoint:@"2016-07-18 20:30:00"];
ACUserCommand *userCmd = [[ACUserCommand alloc] initWithSubDomain:@"subDomain"
service:@"serviceName"
method:@"method"
params:@"param"];
ACUserTask *task = [[ACUserTask alloc] initWithName:@"taskName2"
desc:@"taskDesc2"
timeRule:timeRule
command:userCmd];
return task;
}
修改定时任务组
- (void)modifyUserTaskGroup {
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
/**
修改用户定时任务组
注: 修改是`覆盖修改`, 即以最后一次上传的数据为准, 以前的数据会被覆盖掉
参数`task`可通过`listTaskGroup`接口获取
*/
[userManager modifyTaskGroup:@"taskGroup" callback:^(ACUserTaskGroup *taskGroup, NSError *error) {
if (error) {
//修改失败, 请检查入参`taskGroup`是否正确, `task`可通过`listTaskGroup`接口获取
return;
}
//修改成功, 修改后的用户定时任务对象
//注: 修改是`覆盖修改`, 即以最后一次上传的数据为准, 以前的数据会被覆盖掉
//修改后的定时任务默认是`开启`状态, 如需要关闭, 请调用`closeTaskGroup`接口
}];
}
开启定时任务组
- (void)openUserTaskGroup {
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
/**
开启定时任务组
入参`taskGroupId`可通过`listTaskGroup`接口获取
*/
[userManager openTaskGroup:@"taskGroupId" callback:^(NSError *error) {
if (error) {
//开启失败, 请检查入参`taskId`是否正确, taskGroupId`可通过`listTaskGroup`接口获取
return;
}
//开启定时任务组成功
}];
}
关闭定时任务组
- (void)closeUserTaskGroup {
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
/**
关闭定时任务组
入参`taskGroupId`可通过`listTaskGroup`接口获取
*/
[userManager closeTaskGroup:@"taskGroupId" callback:^(NSError *error) {
if (error) {
//关闭失败, 请检查入参`taskId`是否正确, taskGroupId`可通过`listTaskGroup`接口获取
return;
}
//关闭定时任务组成功
}];
}
删除定时任务组
- (void)deleteUserTaskGroup {
ACUserTimerManager *userManager = [[ACUserTimerManager alloc] init];
/**
删除定时任务组
入参`taskGroupId`可通过`listTaskGroup`接口获取
*/
[userManager deleteTaskGroup:@"taskGroupId" callback:^(NSError *error) {
if (error) {
//删除失败, 请检查入参`taskId`是否正确, taskGroupId`可通过`listTaskGroup`接口获取
return;
}
//删除定时任务组成功
}];
}