Spaces:
Runtime error
Runtime error
from flask import Flask, request, g | |
from threading import Thread | |
from queue import Queue | |
import requests | |
import os | |
app = Flask(__name__) | |
# Configurable parameter for number of workers | |
WORKERS = int(os.getenv('WORKERS', 2)) | |
API_ENDPOINT = os.getenv('API_ENDPOINT', 'https://actual-api-endpoint') | |
class Worker(Thread): | |
def __init__(self, queue): | |
Thread.__init__(self) | |
self.queue = queue | |
def run(self): | |
while True: | |
data, callback = self.queue.get() | |
try: | |
response = requests.post(API_ENDPOINT, data=data) | |
callback(response) | |
finally: | |
self.queue.task_done() | |
def initialize_workers(): | |
g.queue = Queue() | |
for _ in range(WORKERS): | |
worker = Worker(g.queue) | |
worker.daemon = True | |
worker.start() | |
def queue_api(): | |
data = request.get_json() | |
def callback(response): | |
return response.content | |
g.queue.put((data, callback)) | |
g.queue.join() | |
return callback | |
if __name__ == '__main__': | |
app.run() |