Skip to content

Commit 47b5e18

Browse files
committed
add rate limiter
1 parent 3f9b21f commit 47b5e18

3 files changed

Lines changed: 27 additions & 2 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package mServer.crawler.sender.arte.tasks;
2+
3+
import com.google.common.util.concurrent.RateLimiter;
4+
import jakarta.ws.rs.client.WebTarget;
5+
import mServer.crawler.sender.MediathekReader;
6+
import mServer.crawler.sender.base.AbstractJsonRestTask;
7+
import mServer.crawler.sender.base.CrawlerUrlDTO;
8+
9+
import java.util.Optional;
10+
import java.util.concurrent.ConcurrentLinkedQueue;
11+
12+
public abstract class ArteRateLimitedJsonRestTask<T, R, D extends CrawlerUrlDTO> extends AbstractJsonRestTask<T, R, D> {
13+
private static final long serialVersionUID = 1L;
14+
private static final RateLimiter rateLimiter = RateLimiter.create(10.0);
15+
16+
protected ArteRateLimitedJsonRestTask(MediathekReader aCrawler, ConcurrentLinkedQueue<D> urlToCrawlDTOs, Optional<String> authKey) {
17+
super(aCrawler, urlToCrawlDTOs, authKey);
18+
}
19+
20+
@Override
21+
protected void processRestTarget(final D aDTO, final WebTarget aTarget) {
22+
rateLimiter.acquire();
23+
super.processRestTarget(aDTO, aTarget);
24+
}
25+
}

src/main/java/mServer/crawler/sender/arte/tasks/ArteVideoInfoTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import jakarta.ws.rs.core.Response;
2626

2727
public class ArteVideoInfoTask
28-
extends AbstractJsonRestTask<ArteVideoInfoDto, PagedElementListDTO<ArteVideoInfoDto>, TopicUrlDTO> {
28+
extends ArteRateLimitedJsonRestTask<ArteVideoInfoDto, PagedElementListDTO<ArteVideoInfoDto>, TopicUrlDTO> {
2929
private static final long serialVersionUID = 1L;
3030
protected final transient Logger log = LogManager.getLogger(this.getClass());
3131
protected transient Optional<AbstractRecursivConverterTask<ArteVideoInfoDto, TopicUrlDTO>> nextPageTask = Optional.empty();

src/main/java/mServer/crawler/sender/arte/tasks/ArteVideoLinkTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import jakarta.ws.rs.core.Response;
2323

2424
public class ArteVideoLinkTask
25-
extends AbstractJsonRestTask<ArteVideoInfoDto, List<ArteVideoLinkDto>, ArteVideoInfoDto> {
25+
extends ArteRateLimitedJsonRestTask<ArteVideoInfoDto, List<ArteVideoLinkDto>, ArteVideoInfoDto> {
2626
private static final long serialVersionUID = 1L;
2727
protected final transient Logger log = LogManager.getLogger(this.getClass());
2828

0 commit comments

Comments
 (0)