例:
32 - fail
31 - stable no change (triggered by parent)
30 - stable with changes
29 - fail
...
Run Code Online (Sandbox Code Playgroud)
我想要一个查询返回 30
到目前为止我得到了什么:
要查询最后一个稳定版本号:
http://jenkins/job/project_name/lastStableBuild/buildNumber
这回来了31
.不完全是我需要的.
要检查此构建是否有更改,我知道的唯一方法是:
http://jenkins/job/project_name/31/api/json
然后我需要进入巨大的JSON并检查changeSet> items中是否有任何项目.
有没有更简单的方法来查询最新的稳定版本(30)?
我有一个系统,其中多个工作人员并行使用标准 SQS 队列。
我注意到当我有相对大量的消息(即 300 万条)时,我最后处理的总数量总是比消息总数多一些(大约 30 条)。(0.001% ~ 0.002% 以上)
我怀疑这是因为“至少一次”交付:
Amazon Doc:即使您删除了它,您也可能会收到一条消息。如果在您请求删除邮件时存储邮件副本的其中一台服务器不可用,这种情况可能会在极少数情况下发生。该副本保留在服务器上,并且可能会在后续接收请求中再次返回给您。您应该将系统创建为幂等的,以便多次接收特定消息不会有问题。
因此,我想使用“ApproximateReceiveCount”来确定我的消息在处理之前是否已被处理:
(Worker pseudocode)
List messages = sqs.receiveMessage()
for m in messages:
if m.approximateReceiveCount > 1 then
skip process
else
process as usual
end
Run Code Online (Sandbox Code Playgroud)
我想知道这个“approximateReceiveCount”有多准确,以及让我的重复数据删除逻辑依赖于它是否是个好主意。
注意:
我已经设置了一个死信队列来处理任何比“默认可见性超时”(设置为 1 小时)花费的时间更长的消息。由于没有消息被放回死信,我认为额外的计数不是由于这种“超时”效应。
我有一个相当大且复杂的 mysql 查询来进行黑盒测试,这个查询对时间敏感,它有很多基于current_timestamp
.
我的目标是进行一些测试,使其始终通过或失败。我正在考虑current_timestamp
在运行查询之前将临时值模拟为固定日期,并在查询后将其设置回原始值。
这是可行的吗?
我无法修改查询本身(即:找到将 current_timestamp 替换为其他内容)
谢谢