V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
amet
V2EX  ›  Java

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

  •  
  •   amet · 85 天前 · 828 次点击
    这是一个创建于 85 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在做的一个实时性不是非常敏感但计算/ 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 问题?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5701 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 01:38 · PVG 09:38 · LAX 17:38 · JFK 20:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.