Pergunta de entrevista da empresa Atlassian

Coding rounds were for a middleware URL router and a multi-user rate limiter.

Respostas da entrevista

Sigiloso

23 de dez. de 2024

Here is the code for rate limiter. Well there is a python package that does ratelimiting. import time class RateLimiter: def __init__(self,request_id): self.request_id=request_id self.last_reset=time.time() self.num_calls=0 def check(self): if self.request_id in dict.keys(): current_time=time.time() time_since_reset=current_time-dict[self.request_id]["last_reset"] if time_since_reset10: dict[self.request_id]["last_reset"]=time.time() dict[self.request_id]["num_calls"]=0 self.check() elif self.request_id not in dict.keys(): dict[self.request_id]={"num_calls":1,"last_reset":time.time()} rate_limiter=RateLimiter(1) for i in range(20): print(rate_limiter.check())

Sigiloso

23 de dez. de 2024

import time class RateLimiter: def __init__(self,request_id): self.request_id=request_id self.last_reset=time.time() self.num_calls=0 def check(self): if self.request_id in dict.keys(): current_time=time.time() time_since_reset=current_time-dict[self.request_id]["last_reset"] if time_since_reset10: dict[self.request_id]["last_reset"]=time.time() dict[self.request_id]["num_calls"]=0 self.check() elif self.request_id not in dict.keys(): dict[self.request_id]={"num_calls":1,"last_reset":time.time()} rate_limiter=RateLimiter(1) for i in range(20): print(rate_limiter.check())