markrmiller commented on code in PR #2541:
URL: https://github.com/apache/solr/pull/2541#discussion_r1675329967
##########
solr/cross-dc-manager/src/java/org/apache/solr/crossdc/manager/messageprocessor/SolrMessageProcessor.java:
##########
@@ -29,345 +33,369 @@
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SolrParams;
-import org.apache.solr.crossdc.common.ResubmitBackoffPolicy;
import org.apache.solr.crossdc.common.CrossDcConstants;
import org.apache.solr.crossdc.common.IQueueHandler;
import org.apache.solr.crossdc.common.MirroredSolrRequest;
+import org.apache.solr.crossdc.common.ResubmitBackoffPolicy;
import org.apache.solr.crossdc.common.SolrExceptionUtil;
-import org.apache.solr.crossdc.consumer.Consumer;
+import org.apache.solr.crossdc.manager.consumer.Consumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
-import java.lang.invoke.MethodHandles;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
/**
- * Message processor implements all the logic to process a MirroredSolrRequest.
- * It handles:
- * 1. Sending the update request to Solr
- * 2. Discarding or retrying failed requests
- * 3. Flagging requests for resubmission by the underlying consumer
implementation.
+ * Message processor implements all the logic to process a
MirroredSolrRequest. It handles: 1.
+ * Sending the update request to Solr 2. Discarding or retrying failed
requests 3. Flagging requests
+ * for resubmission by the underlying consumer implementation.
*/
-public class SolrMessageProcessor extends MessageProcessor implements
IQueueHandler<MirroredSolrRequest> {
- private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- private final MetricRegistry metrics =
SharedMetricRegistries.getOrCreate(Consumer.METRICS_REGISTRY);
+public class SolrMessageProcessor extends MessageProcessor
+ implements IQueueHandler<MirroredSolrRequest<?>> {
+ private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- final CloudSolrClient client;
+ private final MetricRegistry metrics =
+ SharedMetricRegistries.getOrCreate(Consumer.METRICS_REGISTRY);
- private static final String VERSION_FIELD = "_version_";
+ final CloudSolrClient client;
- public SolrMessageProcessor(CloudSolrClient client, ResubmitBackoffPolicy
resubmitBackoffPolicy) {
- super(resubmitBackoffPolicy);
- this.client = client;
- }
+ private static final String VERSION_FIELD = "_version_";
- @Override
- public Result<MirroredSolrRequest> handleItem(MirroredSolrRequest
mirroredSolrRequest) {
- try (final MDC.MDCCloseable mdc = MDC.putCloseable("collection",
getCollectionFromRequest(mirroredSolrRequest))) {
- connectToSolrIfNeeded();
+ public SolrMessageProcessor(CloudSolrClient client, ResubmitBackoffPolicy
resubmitBackoffPolicy) {
+ super(resubmitBackoffPolicy);
+ this.client = client;
+ }
- // preventCircularMirroring(mirroredSolrRequest); TODO: isn't this
handled by the mirroring handler?
+ @Override
+ @SuppressWarnings("try")
+ public Result<MirroredSolrRequest<?>> handleItem(MirroredSolrRequest<?>
mirroredSolrRequest) {
+ try (final MDC.MDCCloseable ignored =
+ MDC.putCloseable("collection",
getCollectionFromRequest(mirroredSolrRequest))) {
+ connectToSolrIfNeeded();
- return processMirroredRequest(mirroredSolrRequest);
- }
- }
+ // preventCircularMirroring(mirroredSolrRequest); TODO: isn't this
handled by the mirroring
+ // handler?
- private Result<MirroredSolrRequest>
processMirroredRequest(MirroredSolrRequest request) {
- final Result<MirroredSolrRequest> result = handleSolrRequest(request);
- // Back-off before returning
- backoffIfNeeded(result, request.getType());
- return result;
+ return processMirroredRequest(mirroredSolrRequest);
}
+ }
- private Result<MirroredSolrRequest> handleSolrRequest(MirroredSolrRequest
mirroredSolrRequest) {
-
- SolrRequest request = mirroredSolrRequest.getSolrRequest();
- final SolrParams requestParams = request.getParams();
+ private Result<MirroredSolrRequest<?>>
processMirroredRequest(MirroredSolrRequest<?> request) {
+ final Result<MirroredSolrRequest<?>> result = handleSolrRequest(request);
+ // Back-off before returning
+ backoffIfNeeded(result, request.getType());
+ return result;
+ }
- if (log.isDebugEnabled()) {
- log.debug("handleSolrRequest start params={}", requestParams);
- }
+ private Result<MirroredSolrRequest<?>> handleSolrRequest(
+ MirroredSolrRequest<?> mirroredSolrRequest) {
- // TODO: isn't this handled by the mirroring handler?
-// final String shouldMirror = requestParams.get("shouldMirror");
-//
-// if ("false".equalsIgnoreCase(shouldMirror)) {
-// log.warn("Skipping mirrored request because shouldMirror is set
to false. request={}", requestParams);
Review Comment:
At this point, yeah.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]