amet
V2EX  ›  Java

在 JobRunr OSS 中实现作业池的思路?

  •  
  •   amet · Sep 10, 2024 · 3045 views
    This topic created in 673 days ago, the information mentioned may be changed or developed.

    我在做的一个实时性不是非常敏感但计算/ IO 密集型的功能,我们就说它是一个根据查询条件分析和导出报告的功能好了。

    用户发出请求后,我会将其打包成一个作业提交给作业调度框架,我希望这种比较占用资源的作业可以在系统空闲时执行,而其他常规作业则不受影响。目前使用的调度框架是 JobRunr OSS ,思路是将高资源占用的作业打上特殊的标记,执行器在系统负载较高的情况下不要获取这些任务(先假设有一个通用的系统负载指标好了)。

    看了下 JobRunr OSS 的源码,实现 org.jobrunr.server.strategy.WorkDistributionStrategy 接口可以影响执行器请求新作业的行为,然而用于取回新作业的 org.jobrunr.storage.navigation.AmountRequest 只能使用 order 和 limit 参数,不能按照标签等属性区分作业。

    我认为这里需要一个作业池 / 优先级队列的概念,常规池使用默认的调度策略,而高资源占用作业池则使用定制的调度策略(等到系统空闲时),不过 JobQueue 似乎是 JobRunrPro 的功能,有办法在 JobRunr OSS 中实现这个需求吗?

    因为没有搜到很多关于 Resource aware scheduler 的资料,我也有些怀疑这是否是一个值得研究的问题,或者实际上是个 X-Y 问题?

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   942 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:15 · PVG 06:15 · LAX 15:15 · JFK 18:15
    ♥ Do have faith in what you're doing.