package com.ks.push.job;
|
|
import com.ks.push.exception.BPushTaskException;
|
import com.ks.push.pojo.DO.BPushTask;
|
import com.ks.push.pojo.Query.BPushTaskQuery;
|
import com.ks.push.service.BPushTaskService;
|
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
|
@Component
|
public class PushTaskJob {
|
|
Logger logger = LoggerFactory.getLogger(PushTaskJob.class);
|
|
@Resource
|
private BPushTaskService bPushTaskService;
|
|
/**
|
* 定时开启任务
|
*
|
* @param param
|
* @return
|
* @throws Exception
|
*/
|
@XxlJob("startTask")
|
public ReturnT<String> startTask(String param) throws Exception {
|
BPushTaskQuery query = new BPushTaskQuery();
|
query.state = BPushTask.STATE_NOT_START;
|
query.maxStartPushTime = new Date();
|
query.minStartPushTime = new Date(query.maxStartPushTime.getTime() - 1000 * 60 * 60 * 24L);
|
//每次检索20个任务
|
List<BPushTask> taskList = bPushTaskService.list(query, 1, 50);
|
for (BPushTask task : taskList) {
|
try {
|
bPushTaskService.startPush(task.getId());
|
} catch (BPushTaskException e) {
|
logger.error("定时推送开启出错:taskId:{}", task.getId(), e);
|
}
|
}
|
return ReturnT.SUCCESS;
|
}
|
|
}
|