Update app.py
Browse files
app.py
CHANGED
@@ -17,6 +17,9 @@ intents.message_content = True
|
|
17 |
|
18 |
bot = commands.Bot(command_prefix='!', intents=intents)
|
19 |
|
|
|
|
|
|
|
20 |
|
21 |
async def jojo(ctx):
|
22 |
start_time = time.time()
|
@@ -28,19 +31,40 @@ async def jojo(ctx):
|
|
28 |
await ctx.send(f"{style} image generated in {generation_time:.2f} seconds.")
|
29 |
await ctx.send(file=discord.File(im))
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
@bot.command()
|
33 |
async def command(ctx, num_requests: int):
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
|
|
36 |
for _ in range(num_requests):
|
37 |
-
|
38 |
-
tasks.append(task)
|
39 |
|
40 |
-
|
41 |
-
await
|
42 |
|
|
|
|
|
|
|
43 |
|
|
|
|
|
|
|
|
|
|
|
44 |
def run_bot():
|
45 |
bot.run(DISCORD_TOKEN)
|
46 |
|
|
|
17 |
|
18 |
bot = commands.Bot(command_prefix='!', intents=intents)
|
19 |
|
20 |
+
MAX_WORKERS = 5
|
21 |
+
|
22 |
+
worker_semaphore = asyncio.Semaphore(MAX_WORKERS)
|
23 |
|
24 |
async def jojo(ctx):
|
25 |
start_time = time.time()
|
|
|
31 |
await ctx.send(f"{style} image generated in {generation_time:.2f} seconds.")
|
32 |
await ctx.send(file=discord.File(im))
|
33 |
|
34 |
+
async def process_requests(queue):
|
35 |
+
while True:
|
36 |
+
ctx = await queue.get()
|
37 |
+
async with worker_semaphore:
|
38 |
+
await jojo(ctx)
|
39 |
+
queue.task_done()
|
40 |
|
41 |
@bot.command()
|
42 |
async def command(ctx, num_requests: int):
|
43 |
+
start_time = time.time()
|
44 |
+
queue = asyncio.Queue()
|
45 |
+
|
46 |
+
# Start the worker tasks
|
47 |
+
worker_tasks = []
|
48 |
+
for _ in range(MAX_WORKERS):
|
49 |
+
task = asyncio.create_task(process_requests(queue))
|
50 |
+
worker_tasks.append(task)
|
51 |
|
52 |
+
# Add the requests to the queue
|
53 |
for _ in range(num_requests):
|
54 |
+
await queue.put(ctx)
|
|
|
55 |
|
56 |
+
# Wait for all requests to be processed
|
57 |
+
await queue.join()
|
58 |
|
59 |
+
# Cancel the worker tasks
|
60 |
+
for task in worker_tasks:
|
61 |
+
task.cancel()
|
62 |
|
63 |
+
await ctx.send("Command executed.")
|
64 |
+
end_time = time.time()
|
65 |
+
generation_time = end_time - start_time
|
66 |
+
await ctx.send(f"{style} everything done in {generation_time:.2f} seconds.")
|
67 |
+
|
68 |
def run_bot():
|
69 |
bot.run(DISCORD_TOKEN)
|
70 |
|