refactor: remove concurrency limit from Telegram upload queue and enhance media group handling

This commit is contained in:
MythEclipse
2026-05-18 21:54:39 +07:00
parent b91b276214
commit d58b2390ef
6 changed files with 61 additions and 187 deletions
+6 -9
View File
@@ -2,10 +2,9 @@ import { describe, expect, it } from 'bun:test';
import { enqueueUpload } from '../src/utils/telegramQueue';
describe('Telegram Queue', () => {
it('should process tasks in order and limit concurrency', async () => {
it('should process tasks in parallel without limit', async () => {
let activeTasks = 0;
let maxActiveTasks = 0;
const executionOrder: number[] = [];
const createTask = (id: number, delayMs: number) => {
return async () => {
@@ -16,24 +15,22 @@ describe('Telegram Queue', () => {
await new Promise((resolve) => setTimeout(resolve, delayMs));
executionOrder.push(id);
activeTasks--;
return id;
};
};
// Enqueue 4 tasks with delays
const promises = [
enqueueUpload(createTask(1, 50)),
enqueueUpload(createTask(2, 20)),
enqueueUpload(createTask(3, 10)),
enqueueUpload(createTask(4, 5)),
enqueueUpload(createTask(2, 50)),
enqueueUpload(createTask(3, 50)),
enqueueUpload(createTask(4, 50)),
];
const results = await Promise.all(promises);
expect(results).toEqual([1, 2, 3, 4]);
// Concurrency limit is 2, so maximum active tasks at any time should be <= 2
expect(maxActiveTasks).toBeLessThanOrEqual(2);
// Concurrency limit is removed, so active tasks should be able to reach 4 (fully parallel)
expect(maxActiveTasks).toBe(4);
});
});