TaskAddJob.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package cn.cslg.pas.service.upLoadPatent;
  2. import cn.cslg.pas.domain.Task;
  3. import cn.cslg.pas.domain.asso.AssoOsTaskQrtzTask;
  4. import cn.cslg.pas.service.TaskService;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import lombok.RequiredArgsConstructor;
  7. import org.apache.commons.logging.Log;
  8. import org.apache.commons.logging.LogFactory;
  9. import org.quartz.DisallowConcurrentExecution;
  10. import org.quartz.JobDataMap;
  11. import org.quartz.JobExecutionContext;
  12. import org.quartz.JobExecutionException;
  13. import org.springframework.scheduling.quartz.QuartzJobBean;
  14. import java.util.Arrays;
  15. import java.util.List;
  16. /**
  17. * 定义任务
  18. */
  19. @RequiredArgsConstructor
  20. @DisallowConcurrentExecution
  21. public class TaskAddJob extends QuartzJobBean {
  22. private static final Log logger = LogFactory.getLog(TaskAddJob.class);
  23. private boolean flag = true;
  24. private final PantentQueueService pantentQueueService;
  25. private final TaskService taskService;
  26. @Override
  27. public void executeInternal(JobExecutionContext context) throws JobExecutionException {
  28. JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
  29. AssoOsTaskQrtzTask assoOsTaskQrtzTask = (AssoOsTaskQrtzTask) jobDataMap.get("assoOsTaskQrtzTask");
  30. Task task = new Task();
  31. task.setQrtzTaskId(assoOsTaskQrtzTask.getId());
  32. task.setTotal(assoOsTaskQrtzTask.getTotal());
  33. task.setStatus(0);
  34. taskService.save(task);
  35. //任务存入生产者任务队列并唤醒生产者线程(判断若没有进行中的任务则唤醒)
  36. pantentQueueService.taskQueueAddTask(Arrays.asList(task.getId()));
  37. pantentQueueService.awakeTasktch();
  38. logger.info("添加任务" + "信息是" + task);
  39. }
  40. }