Skip to content

Commit

Permalink
set llimit to 100ms per block to avoid rate limit
Browse files Browse the repository at this point in the history
  • Loading branch information
cauta committed May 10, 2024
1 parent 84920d1 commit fedad34
Showing 1 changed file with 34 additions and 7 deletions.
41 changes: 34 additions & 7 deletions app/apps/worker-service/src/worker-service.controller.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { Controller, Get } from '@nestjs/common';
import { WorkerServiceService } from './worker-service.service';
import { EventPattern } from '@nestjs/microservices';
import { TopicName } from '@app/utils/topicUtils';
import { Controller, Get, Logger } from '@nestjs/common';
import { EventPattern } from '@nestjs/microservices';
import { WorkerServiceService } from './worker-service.service';
import { EthereumWorker } from './worker/ethereum.worker';
import { PolygonWorker } from './worker/polygon.worker';

@Controller()
export class WorkerServiceController {
private readonly logger = new Logger(WorkerServiceController.name);
constructor(
private readonly workerServiceService: WorkerServiceService,
private readonly ethereumWorker: EthereumWorker,
Expand All @@ -18,23 +19,49 @@ export class WorkerServiceController {
return this.workerServiceService.getHello();
}

async delay(ms: number) {
return new Promise<void>((resolve) => {
setTimeout(resolve, ms);
});
}

@EventPattern(TopicName.ETH_DETECTED_BLOCK)
async ethDetectBlock(data: any) {
this.ethereumWorker.ethHandleDetectedBlock(data);
await Promise.race([
this.ethereumWorker.ethHandleDetectedBlock(data),
this.delay(100).then(() => {
return;
}),
]);
}

@EventPattern(TopicName.ETH_CONFIRMED_BLOCK)
async ethConfirmBlock(data: any) {
this.ethereumWorker.ethHandleConfirmedBlock(data);
await Promise.race([
this.ethereumWorker.ethHandleConfirmedBlock(data),
this.delay(100).then(() => {
return;
}),
]);
}

@EventPattern(TopicName.POLYGON_DETECTED_BLOCK)
async polygonDetectBlock(data: any) {
this.polygonWorker.ethHandleDetectedBlock(data);
await Promise.race([
this.polygonWorker.ethHandleDetectedBlock(data),
this.delay(100).then(() => {
return;
}),
]);
}

@EventPattern(TopicName.POLYGON_CONFIRMED_BLOCK)
async polygonConfirmBlock(data: any) {
this.polygonWorker.ethHandleConfirmedBlock(data);
await Promise.race([
this.polygonWorker.ethHandleConfirmedBlock(data),
this.delay(100).then(() => {
return;
}),
]);
}
}

0 comments on commit fedad34

Please sign in to comment.