Представьте, что у меня есть какая-то функция f()
, которая должна выполняться постоянно. Но я хочу установить ограничение скорости выполнения, что-то вроде «Выполнить функцию не более 10 раз за 1 минуту». В представлении кода я думаю, что он может иметь следующий интерфейс:
(async () => {
const f = async () => {};
const executor = new Executor({ max: 1, duration: 10000 });
Array(10).fill(null).map(x => executor.addJob(f));
await executor.execute();
})();
У меня есть несколько идей о том, как реализовать это на чистом JS, но некоторые реализации уже доступны? Кроме того, я знаю, что можно реализовать с помощью некоторого 3-стороннего программного обеспечения, такого как очередь Bull и т. Д., Но мне нужна именно внутренняя реализация.
Заранее спасибо!