BuildMarkTaskJob.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.qmth.teachcloud.task.job;
  2. import com.qmth.boot.core.concurrent.service.ConcurrentService;
  3. import com.qmth.teachcloud.common.contant.SystemConstant;
  4. import com.qmth.teachcloud.mark.enums.LockType;
  5. import com.qmth.teachcloud.task.job.service.JobService;
  6. import org.quartz.DisallowConcurrentExecution;
  7. import org.quartz.JobExecutionContext;
  8. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.scheduling.quartz.QuartzJobBean;
  12. import javax.annotation.Resource;
  13. /**
  14. * 生成评卷任务
  15. */
  16. //@DisallowConcurrentExecution//串行执行
  17. public class BuildMarkTaskJob extends QuartzJobBean {
  18. private final static Logger log = LoggerFactory.getLogger(BuildMarkTaskJob.class);
  19. @Autowired
  20. private ConcurrentService concurrentService;
  21. @Resource
  22. JobService jobService;
  23. @Override
  24. protected void executeInternal(JobExecutionContext jobExecutionContext) {
  25. if (concurrentService.getReadWriteLock(LockType.BUILD_MARK_TASK.name()).writeLock().tryLock()) {
  26. try {
  27. jobService.updateBuildMarkTask();
  28. } catch (Exception e) {
  29. log.info("build-mark-task error");
  30. e.printStackTrace();
  31. } finally {
  32. concurrentService.getReadWriteLock(LockType.BUILD_MARK_TASK.name()).writeLock().unlock();
  33. }
  34. } else {
  35. log.info("build-mark-task is running");
  36. }
  37. }
  38. }