Package ai.platon.pulsar.common.proxy
Class ProxyLoader
-
- All Implemented Interfaces:
-
java.lang.AutoCloseable
public abstract class ProxyLoader implements AutoCloseable
Load proxies from proxy vendors
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classProxyLoader.Companion
-
Field Summary
Fields Modifier and Type Field Description private DurationminimumProxyTTLprivate BooleantestProxyBeforeUseprivate StringtestUrlprivate final DurationfileWatchIntervalprivate final Map<Path, Instant>lastModifiedTimesprivate StringbanStrategyprivate DurationipTimeToBanprivate DurationsegmentTimeToBanprivate final ConcurrentPassiveExpiringSet<String>bannedIpsprivate final ConcurrentPassiveExpiringSet<String>bannedSegmentsprivate DoubletestIpRateprivate final BooleanisActivepublic final static ProxyLoader.CompanionCompanion
-
Constructor Summary
Constructors Constructor Description ProxyLoader(ImmutableConfig conf)
-
Method Summary
Modifier and Type Method Description final DurationgetMinimumProxyTTL()The minimum time to live for proxy IPs, the implementation might drop short-live proxy IPs. final UnitsetMinimumProxyTTL(Duration minimumProxyTTL)The minimum time to live for proxy IPs, the implementation might drop short-live proxy IPs. final BooleangetTestProxyBeforeUse()final UnitsetTestProxyBeforeUse(Boolean testProxyBeforeUse)final StringgetTestUrl()final UnitsetTestUrl(String testUrl)final DurationgetFileWatchInterval()final Map<Path, Instant>getLastModifiedTimes()final StringgetBanStrategy()final UnitsetBanStrategy(String banStrategy)final DurationgetIpTimeToBan()final UnitsetIpTimeToBan(Duration ipTimeToBan)final DurationgetSegmentTimeToBan()final UnitsetSegmentTimeToBan(Duration segmentTimeToBan)final ConcurrentPassiveExpiringSet<String>getBannedIps()final ConcurrentPassiveExpiringSet<String>getBannedSegments()final DoublegetTestIpRate()The probability to choose a test ip if absent final UnitsetTestIpRate(Double testIpRate)The probability to choose a test ip if absent final BooleanisActive()final List<ProxyEntry>updateProxies()abstract List<ProxyEntry>updateProxies(Duration reloadInterval)final UnitupdateBanStrategy()final ProxyEntryloadTestProxyIfAbsent()Get a test ip by a probability if exist in file TEST_PROXY_FILE Unitclose()-
-
Constructor Detail
-
ProxyLoader
ProxyLoader(ImmutableConfig conf)
-
-
Method Detail
-
getMinimumProxyTTL
final Duration getMinimumProxyTTL()
The minimum time to live for proxy IPs, the implementation might drop short-live proxy IPs.
-
setMinimumProxyTTL
final Unit setMinimumProxyTTL(Duration minimumProxyTTL)
The minimum time to live for proxy IPs, the implementation might drop short-live proxy IPs.
-
getTestProxyBeforeUse
final Boolean getTestProxyBeforeUse()
-
setTestProxyBeforeUse
final Unit setTestProxyBeforeUse(Boolean testProxyBeforeUse)
-
getTestUrl
final String getTestUrl()
-
setTestUrl
final Unit setTestUrl(String testUrl)
-
getFileWatchInterval
final Duration getFileWatchInterval()
-
getLastModifiedTimes
final Map<Path, Instant> getLastModifiedTimes()
-
getBanStrategy
final String getBanStrategy()
-
setBanStrategy
final Unit setBanStrategy(String banStrategy)
-
getIpTimeToBan
final Duration getIpTimeToBan()
-
setIpTimeToBan
final Unit setIpTimeToBan(Duration ipTimeToBan)
-
getSegmentTimeToBan
final Duration getSegmentTimeToBan()
-
setSegmentTimeToBan
final Unit setSegmentTimeToBan(Duration segmentTimeToBan)
-
getBannedIps
final ConcurrentPassiveExpiringSet<String> getBannedIps()
-
getBannedSegments
final ConcurrentPassiveExpiringSet<String> getBannedSegments()
-
getTestIpRate
final Double getTestIpRate()
The probability to choose a test ip if absent
-
setTestIpRate
final Unit setTestIpRate(Double testIpRate)
The probability to choose a test ip if absent
-
updateProxies
final List<ProxyEntry> updateProxies()
-
updateProxies
abstract List<ProxyEntry> updateProxies(Duration reloadInterval)
-
updateBanStrategy
@Synchronized() final Unit updateBanStrategy()
-
loadTestProxyIfAbsent
final ProxyEntry loadTestProxyIfAbsent()
Get a test ip by a probability if exist in file TEST_PROXY_FILE
-
-
-
-