Создайте несколько объектов Timeout в NodeJS, используя setInterval () - PullRequest
0 голосов
/ 08 апреля 2020

Используя node.js, насколько масштабируемым было бы вызывать setInterval несколько раз? Я хотел бы создать систему заданий, в которой периодические c задания должны выполняться с разными интервалами, и мое текущее решение состоит в создании Timeout (путем вызова setInterval) для каждой новой работы.

В настоящее время я устанавливаю свои функции обратного вызова как асинхронные c вызовы.

Я пытаюсь понять лучшую масштабируемую и производительную практику для поддержки растущего числа объектов Timeouts в node.js приложение, чтобы избежать будущих проблем с памятью и производительностью.

1 Ответ

0 голосов
/ 08 апреля 2020

Ох, разработка сложна, так как я точно не знаю, что должно быть сделано.

Хорошо, позвольте мне попробовать (возможно, мне повезло). Обычно вы можете придумать что-то вроде:

function Job {
    function taskA() {
        return new Promise(resolve => {
            setTimeout(function() {
                resolve('result A');
            }, 1000);
        });
    }
    function taskB(arg) {
        return new Promise(resolve => {
            setTimeout(function() {
                resolve('result B of ' + arg);
            }, 1000);
        });
    }
    // would allow this chain:
    this.work = () => {
        taskA()
            .then(resA => taskB(resA))
            .then(resB => console.log(resB));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...