From 10cbbd6fa6120db38479a1be12c3ee17f80df316 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Thu, 14 Mar 2024 22:20:38 +0200 Subject: Limit queue size --- src/index.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/index.ts') diff --git a/src/index.ts b/src/index.ts index 329d7b6..938b5f0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import { addTask, getTask } from "./tasks"; +import { addTask, getTask, numOfTasksInQueue } from "./tasks"; import { runDownloadInstagramTask } from "./instagram_task"; import { runWithRetries, wait } from "./utils"; import { AppOptions, App as SlackApp } from "@slack/bolt"; @@ -6,6 +6,10 @@ import fs from "fs"; import dotenv from "dotenv"; dotenv.config(); +const QUEUE_MAX_LENGTH = process.env.QUEUE_MAX_LENGTH + ? Number(process.env.QUEUE_MAX_LENGTH) + : 3; + const slackAppConfig: AppOptions = { token: process.env.SLACK_BOT_TOKEN, signingSecret: process.env.SLACK_SIGNING_SECRET, @@ -19,6 +23,15 @@ const app = new SlackApp(slackAppConfig); app.command("/veeti", async ({ command, ack, respond, client }) => { await ack(); + + if (numOfTasksInQueue() >= QUEUE_MAX_LENGTH) { + void respond({ + text: "Too many tasks in queue, please try again later.", + response_type: "ephemeral", + }); + return; + } + console.log("Received command: /veeti", command.text); const url = command.text.trim(); -- cgit v1.3