the-algorithm/src/java/com/twitter/search/common/search/termination/QueryTimeoutFactory.java
twitter-team ef4c5eb65e Twitter Recommendation Algorithm
Please note we have force-pushed a new initial commit in order to remove some publicly-available Twitter user information. Note that this process may be required in the future.
2023-03-31 17:36:31 -05:00

35 lines
1.3 KiB
Java

package com.twitter.search.common.search.termination;
import com.twitter.common.util.Clock;
import com.twitter.search.common.search.TerminationTracker;
import com.twitter.search.earlybird.thrift.EarlybirdRequest;
public class QueryTimeoutFactory {
/**
* Creates a QueryTimeout instance for a given EarlybirdRequest and TerminationTracker, if the
* required conditions for leaf-level timeout checking are met. Returns null otherwise.
*
* The conditions are:
* 1) CollectorTerminationParams.isEnforceQueryTimeout()
* 2) CollectorTerminationParams.isSetTimeoutMs()
*/
public QueryTimeout createQueryTimeout(
EarlybirdRequest request,
TerminationTracker tracker,
Clock clock) {
if (tracker != null
&& request != null
&& request.isSetSearchQuery()
&& request.getSearchQuery().isSetCollectorParams()
&& request.getSearchQuery().getCollectorParams().isSetTerminationParams()
&& request.getSearchQuery().getCollectorParams().getTerminationParams()
.isEnforceQueryTimeout()
&& request.getSearchQuery().getCollectorParams().getTerminationParams()
.isSetTimeoutMs()) {
return new QueryTimeoutImpl(request.getClientId(), tracker, clock);
} else {
return null;
}
}
}