abc`1 2023-05-23 14:46 采纳率: 73.7%
浏览 24
已结题

任务异步执行的优化疑问

有个功能是创建任务后存储到任务表:用户在界面上填写表单提交,调用创建任务接口,存储到任务表。
然后后台有一个定时任务每分钟扫描任务表,每次获取10个未执行的任务,执行完毕后再获取10个,如果没有结束,等1分钟后继续这种操作。

我在想,创建任务后直接用 @async 异步执行不就可以了吗?另外搞一个定时任务去扫描是不是有点多余?还是说有什么东西没考虑到的,必须要用定时扫描,比如@async 异步是内存队列,怕内存占用太多?

  • 写回答

2条回答 默认 最新

  • 码上团建 2023-05-23 14:59
    关注
    • 使用 @Async 注解确实可以实现异步执行任务,但是它只是将任务提交到一个线程池中异步执行,并不会保存任务状态。如果你需要保存任务状态,以便在后续的定时任务中进行处理,那么你需要将任务保存到任务表中,并在定时任务中从任务表中获取任务执行。
    • 此外,使用定时任务的好处是可以控制任务的执行频率和执行时间,以避免任务过多或者任务执行时间过长导致系统负载过高。如果你使用 @Async 异步执行任务,可能会导致任务过多或者任务执行时间过长,从而影响系统的稳定性和性能。
    • 因此,在设计任务异步执行的方案时,需要综合考虑任务的性质、任务的数量和系统的负载情况,选择合适的方案来实现。如果任务数量较少,并且任务执行时间较短,可以考虑使用 @Async 异步执行任务;如果任务数量较多或者任务执行时间较长,建议使用定时任务来控制任务的执行。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 修改了问题 5月23日
  • 修改了问题 5月23日
  • 展开全部

悬赏问题

  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化