我有两个在不同时间运行的计划任务 . 第一项任务是每5秒运行一次,第二项任务是每10分钟运行一次 .

@EnableScheduling
public class ScheduledTask {

    @Autowired
    private taskService taskService;

    @Scheduled(every 5 second)
    public void scheduleTaskA() {
        taskService.taskA()
    }

    @Scheduled(every 10 minute)
    public void scheduleTaskB() {
        taskService.taskB()
    }
}

public class TaskServiceImpl implements TaskService {

    @PersistenceContext
    private EntityManager entityManager;

    void taskA(){
        StoredProcedureQuery query = entityManager.createStoredProcedureQuery("callStoreProcedure1"); 

        if(query.execute()) 
            query.getSingleResult();        

    }

    void taskB(){
        StoredProcedureQuery query = entityManager.createStoredProcedureQuery("callStoreProcedure2"); 

        if(query.execute())
            query.getSingleResult();                    
    }
}

每次第二个任务运行时,它都会抛出 java.lang.IllegalStateException: Session/EntityManager is closed . 看起来第一个任务是关闭entityManager . 如何在不更改@PersistenceContext注释的情况下使其无效?