Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CrawlRequest {
- @NotNull
- private Integer jobId;
- @NotEmpty
- private List<String> urls;
- @Min(0)
- @Max(1)
- private Integer priority;
- @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
- private Date crawlDate;
- private List<KeyValue> additionalData;
- }
- @Data
- class KeyValue {
- String key;
- String value;
- }
- class ExampleProcessor {
- final String RABBITMQ_MESSAGE_STRING_FORMAT = "%s\tjobId=%d\tcrawlDate=%s";
- public void process(final String url, CrawlRequest crawlRequest) {
- Map<String, String> defaultValueConfig = null; // get from config file
- Set<String> supportedKeys = null; // get from config file
- final int jobId = crawlRequest.getJobId();
- final Date crawlDate = crawlRequest.getCrawlDate() == null ? new Date() : crawlRequest.getCrawlDate();
- Set<KeyValue> values = crawlRequest.getAdditionalData().stream().filter(kv -> supportedKeys.contains(kv.getKey())).collect(Collectors.toSet());
- final List<String> valuesKeyFormatted = values.stream().map(kv -> kv.getKey() + "=%s").collect(Collectors.toList());
- final List<String> valuesFormatted = values.stream().map(kv -> kv.getValue()).collect(Collectors.toList());
- final String request = String.format(RABBITMQ_MESSAGE_STRING_FORMAT + String.join("\t", valuesKeyFormatted), url, jobId, crawlDate, valuesFormatted);
- }
- }
Add Comment
Please, Sign In to add comment