问题描述
我正在尝试使用 cmo.deleteMessages 来清理超过 30 天的消息。
connect(...)
domainRuntime()
print 'Cleaning Message from QUEUE:myqueue'
try:
cd('ServerRuntimes/myserver/JMSRuntime/myserver.jms/JMSServers/myserver/Destinations/JMSMODULE!JMSmyserver@myqueue')
cmo.deleteMessages("JMSTimestamp > 5200000000")
except:
pass
然而,Weblogic 无法识别属性“JMSTimestamp > 5200000000”。它会删除所有消息。 当我将条目“JMSTimestamp > 5200000000”放入消息选择器 [在 wl 控制台中] 时,它会显示所有消息,而不是只有 30 天的消息 [5200000000 毫秒是 30 天]。
问题是 Weblogic 或 python 脚本无法识别格式“JMSTimestamp > 5200000000”。知道我错过了什么。
解决方法
我能够使用 Linux 中的修改日期命令工具以毫秒为单位创建时间戳。
$ date +%s%N | cut -b1-13
1617374452236
JMS 时间戳参数接受此格式并能够执行任务。