private boolean expired(TemporalAmount claimTimeout) { return timestamp().plus(claimTimeout).isBefore(clock.instant()); }
private boolean expired(TemporalAmount claimTimeout) { return timestamp().plus(claimTimeout).isBefore(clock.instant()); }
private boolean expired(TemporalAmount claimTimeout) { return timestamp().plus(claimTimeout).isBefore(clock.instant()); }
private Document tokenEntryToDocument(AbstractTokenEntry<?> tokenEntry) { return new Document("processorName", tokenEntry.getProcessorName()) .append("segment", tokenEntry.getSegment()) .append("owner", tokenEntry.getOwner()) .append("timestamp", tokenEntry.timestamp().toEpochMilli()) .append("token", tokenEntry.getSerializedToken() == null ? null : tokenEntry.getSerializedToken().getData()) .append("tokenType", tokenEntry.getSerializedToken() == null ? null : tokenEntry.getSerializedToken() .getContentType().getName()); }
private Document tokenEntryToDocument(AbstractTokenEntry<?> tokenEntry) { return new Document("processorName", tokenEntry.getProcessorName()) .append("segment", tokenEntry.getSegment()) .append("owner", tokenEntry.getOwner()) .append("timestamp", tokenEntry.timestamp().toEpochMilli()) .append("token", tokenEntry.getSerializedToken() == null ? null : tokenEntry.getSerializedToken().getData()) .append("tokenType", tokenEntry.getSerializedToken() == null ? null : tokenEntry.getSerializedToken() .getType().getName()); }
private void updateOrInsertTokenEntry(TrackingToken token, String processorName, int segment) { AbstractTokenEntry<?> tokenEntry = new GenericTokenEntry<>(token, serializer, contentType, processorName, segment); tokenEntry.claim(nodeId, claimTimeout); Bson update = combine(set("owner", nodeId), set("timestamp", tokenEntry.timestamp().toEpochMilli()), set("token", tokenEntry.getSerializedToken().getData()), set("tokenType", tokenEntry.getSerializedToken().getType().getName())); UpdateResult updateResult = mongoTemplate.trackingTokensCollection() .updateOne(claimableTokenEntryFilter(processorName, segment), update); if (updateResult.getModifiedCount() == 0) { try { mongoTemplate.trackingTokensCollection() .insertOne(tokenEntryToDocument(tokenEntry)); } catch (MongoWriteException exception) { if (ErrorCategory.fromErrorCode(exception.getError().getCode()) == ErrorCategory.DUPLICATE_KEY) { throw new UnableToClaimTokenException(format("Unable to claim token '%s[%s]'", processorName, segment)); } } } }
private void updateOrInsertTokenEntry(TrackingToken token, String processorName, int segment) { AbstractTokenEntry<?> tokenEntry = new GenericTokenEntry<>(token, serializer, contentType, processorName, segment); tokenEntry.claim(nodeId, claimTimeout); Bson update = combine(set("owner", nodeId), set("timestamp", tokenEntry.timestamp().toEpochMilli()), set("token", tokenEntry.getSerializedToken().getData()), set("tokenType", tokenEntry.getSerializedToken().getType().getName())); UpdateResult updateResult = mongoTemplate.trackingTokensCollection() .updateOne(claimableTokenEntryFilter(processorName, segment), update); if (updateResult.getModifiedCount() == 0) { try { mongoTemplate.trackingTokensCollection() .insertOne(tokenEntryToDocument(tokenEntry)); } catch (MongoWriteException exception) { if (ErrorCategory.fromErrorCode(exception.getError().getCode()) == ErrorCategory.DUPLICATE_KEY) { throw new UnableToClaimTokenException(format("Unable to claim token '%s[%s]'", processorName, segment)); } } } }