有个功能是创建任务后存储到任务表:用户在界面上填写表单提交,调用创建任务接口,存储到任务表。
然后后台有一个定时任务每分钟扫描任务表,每次获取10个未执行的任务,执行完毕后再获取10个,如果没有结束,等1分钟后继续这种操作。
我在想,创建任务后直接用 @async
异步执行不就可以了吗?另外搞一个定时任务去扫描是不是有点多余?还是说有什么东西没考虑到的,必须要用定时扫描,比如@async
异步是内存队列,怕内存占用太多?
有个功能是创建任务后存储到任务表:用户在界面上填写表单提交,调用创建任务接口,存储到任务表。
然后后台有一个定时任务每分钟扫描任务表,每次获取10个未执行的任务,执行完毕后再获取10个,如果没有结束,等1分钟后继续这种操作。
我在想,创建任务后直接用 @async
异步执行不就可以了吗?另外搞一个定时任务去扫描是不是有点多余?还是说有什么东西没考虑到的,必须要用定时扫描,比如@async
异步是内存队列,怕内存占用太多?
@Async
注解确实可以实现异步执行任务,但是它只是将任务提交到一个线程池中异步执行,并不会保存任务状态。如果你需要保存任务状态,以便在后续的定时任务中进行处理,那么你需要将任务保存到任务表中,并在定时任务中从任务表中获取任务执行。@Async
异步执行任务,可能会导致任务过多或者任务执行时间过长,从而影响系统的稳定性和性能。@Async
异步执行任务;如果任务数量较多或者任务执行时间较长,建议使用定时任务来控制任务的执行。