admin
2024-10-16 7fa83e5dd03f7896bd1d1e8c47f5e926ff3d4ba0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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;
    }
 
}