def prune_expired(self, lockname, caller):
now = timestamp_millis()
logger.debug("Prune: lockname=" + lockname + ", caller=" + caller +
", Time now is %s" + str(now))
try:
self.get_table().put_item(
Item={
'lockname': lockname,
'expire_ts': 0,
'holder': NO_HOLDER
},
ConditionExpression=Attr("expire_ts").lt(now) | Attr('lockname').not_exists()
)
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == 'ConditionalCheckFailedException':
logger.warn("Prune: lockname=" + lockname + ", caller=" + caller +
" Prune failed")
return False
logger.debug("Prune: lockname=" + lockname + ", caller=" + caller + " Prune succeeded")
return True
评论列表
文章目录