Browse Source

Always use rate limiter for metadata requests, and sleep for a random amount of time between fetching metadata items.

add-create-bytes-endpoint
CalDescent 1 year ago
parent
commit
b0224651c2
  1. 2
      src/main/java/org/qortal/api/resource/ArbitraryResource.java
  2. 5
      src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java

2
src/main/java/org/qortal/api/resource/ArbitraryResource.java

@ -724,7 +724,7 @@ public class ArbitraryResource {
ArbitraryDataResource resource = new ArbitraryDataResource(name, ResourceIdType.NAME, service, identifier);
try {
ArbitraryDataTransactionMetadata transactionMetadata = ArbitraryMetadataManager.getInstance().fetchMetadata(resource, false);
ArbitraryDataTransactionMetadata transactionMetadata = ArbitraryMetadataManager.getInstance().fetchMetadata(resource, true);
if (transactionMetadata != null) {
ArbitraryResourceMetadata resourceMetadata = ArbitraryResourceMetadata.fromTransactionMetadata(transactionMetadata, true);
if (resourceMetadata != null) {

5
src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java

@ -275,7 +275,10 @@ public class ArbitraryDataManager extends Thread {
int offset = 0;
while (!isStopping) {
Thread.sleep(1000L);
final int minSeconds = 3;
final int maxSeconds = 10;
final int randomSleepTime = new Random().nextInt((maxSeconds - minSeconds + 1)) + minSeconds;
Thread.sleep(randomSleepTime * 1000L);
// Any arbitrary transactions we want to fetch data for?
try (final Repository repository = RepositoryManager.getRepository()) {

Loading…
Cancel
Save