Guest User

Untitled

a guest
Sep 18th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. public class CrawlRequest {
  2. @NotNull
  3. private Integer jobId;
  4.  
  5. @NotEmpty
  6. private List<String> urls;
  7.  
  8. @Min(0)
  9. @Max(1)
  10. private Integer priority;
  11.  
  12. @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
  13. private Date crawlDate;
  14.  
  15. private List<KeyValue> additionalData;
  16. }
  17.  
  18. @Data
  19. class KeyValue {
  20. String key;
  21. String value;
  22. }
  23.  
  24. class ExampleProcessor {
  25. final String RABBITMQ_MESSAGE_STRING_FORMAT = "%s\tjobId=%d\tcrawlDate=%s";
  26.  
  27. public void process(final String url, CrawlRequest crawlRequest) {
  28.  
  29. Map<String, String> defaultValueConfig = null; // get from config file
  30. Set<String> supportedKeys = null; // get from config file
  31.  
  32. final int jobId = crawlRequest.getJobId();
  33. final Date crawlDate = crawlRequest.getCrawlDate() == null ? new Date() : crawlRequest.getCrawlDate();
  34. Set<KeyValue> values = crawlRequest.getAdditionalData().stream().filter(kv -> supportedKeys.contains(kv.getKey())).collect(Collectors.toSet());
  35.  
  36. final List<String> valuesKeyFormatted = values.stream().map(kv -> kv.getKey() + "=%s").collect(Collectors.toList());
  37. final List<String> valuesFormatted = values.stream().map(kv -> kv.getValue()).collect(Collectors.toList());
  38.  
  39. final String request = String.format(RABBITMQ_MESSAGE_STRING_FORMAT + String.join("\t", valuesKeyFormatted), url, jobId, crawlDate, valuesFormatted);
  40.  
  41. }
  42. }
Add Comment
Please, Sign In to add comment