You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否以小时或天为单位配置expiry-delay参数而非使用毫秒?

如何用小时/天为单位配置ActiveMQ Artemis的expiry-delay参数

ActiveMQ Artemis的expiry-delay参数默认只接受毫秒值,但有几种方式可以实现用小时或天来配置,不用手动换算:

  • 直接写换算后的毫秒数+注释:如果不想折腾,直接把小时/天数转换成毫秒,加上注释说明对应的时间,方便后续维护。比如:

    <address-setting match="asdf">
      ...
      <!-- 1小时 = 3600秒 × 1000毫秒/秒 = 3600000毫秒 -->
      <expiry-delay>3600000</expiry-delay>
      <expiry-address>ExpiryQueue</expiry-address>
      ...
    </address-setting>
    
  • 用系统属性占位符动态传入:在XML里用${}占位符,启动时通过JVM参数传入换算好的值,或者在启动脚本里自动计算。比如:
    配置文件:

    <address-setting match="asdf">
      ...
      <!-- 默认1天(86400000毫秒),可通过JVM参数-Dmy.expiry.delay覆盖 -->
      <expiry-delay>${my.expiry.delay:86400000}</expiry-delay>
      <expiry-address>ExpiryQueue</expiry-address>
      ...
    </address-setting>
    

    启动时传入2小时的参数:./artemis run -Dmy.expiry.delay=7200000

  • 使用时间单位后缀(Artemis 2.19.0+):从Artemis 2.19.0版本开始,支持直接在配置中写带时间单位的后缀,不用换算毫秒。支持的单位包括:ms(毫秒)、s(秒)、m(分钟)、h(小时)、d(天)。比如:

    <address-setting match="asdf">
      ...
      <expiry-delay>1h</expiry-delay> <!-- 配置为1小时 -->
      <!-- 或者 <expiry-delay>2d</expiry-delay> 表示2天 -->
      <expiry-address>ExpiryQueue</expiry-address>
      ...
    </address-setting>
    

内容的提问来源于stack exchange,提问作者Gampa Sivakumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 00:58:12