Что лучший способ состоит в том, чтобы реализовать фоновые сервисы для приложения ASP.NET?

Ваши запросы истекают из-за того, что вы заполняете сервер слишком большим количеством запросов. Вы должны разбить ваши многочисленные запросы на меньшие партии и ждать их.

Вот как это будет работать с API fetch:

async function getall() {
    const ops = [];
    const length = 50; // reduced for snippet reasons ... :)
    const batchsize = 10;
    for (let x = 0; x < length; x+=batchsize) {
        const batch = [];
        for (let y = x; y < length && y < x + batchsize; y++) {
            const req = fetch("https://jsonplaceholder.typicode.com/todos/1")
                             .then((resp) => resp.json());
            batch.push(req);
        }
        // Wait for this batch to be completed before launching the next batch:
        ops.push(...await Promise.all(batch));
    }
    return ops;
}

getall().then((res) => console.log(res));

6
задан flesh 13 November 2008 в 21:27
поделиться

5 ответов

В этом году я должен был реализовать единственную задачу кэшировать некоторые данные из базы данных, Они должны были проверить изменяющийся код каждый n минуты, я нашел эту очень хорошую статью;

Моделируйте службу Windows с помощью ASP.NET для выполнения запланированных заданий

Я сделал это тот путь, и это работало, но поскольку я сказал Вам, было это, была только единственная задача, но если Вы видите, что пример выше Вас видит, что это выполняет несколько задач.

Как Вы видели в кэше, можно выполнить задачу в любое время и на интервалах, ночная задача могла быть сделана в полночь, другие каждый n минуты или часы.

Надежда это помогает.

6
ответ дан 10 December 2019 в 02:55
поделиться

- Для ночного поколения отчета я изучил бы SQL Reporting Services, потому что у них есть некоторые собственные сервисы подписки, которые позволяют, Вы на адрес электронной почты не сообщаете пользователям с виртуальным ни о каком пользовательском коде.

- Для запоздалых уведомлений об объекте работы Вы могли или использовать SSRS (упомянутый выше) путем отправки им отчета с их просроченными объектами или при выполнении SQL 2k5 используйте Notification Services.

1
ответ дан 10 December 2019 в 02:55
поделиться

Таймер, объединенный со второстепенным рабочим, работал хорошо на меня:

Timer timer = new Timer(intervalSeconds * 1000)
timer.Elapsed += delegate
{
    // do the meat
};
timer.Start();

Следует иметь в виду, что у Вас не будет доступа к HttpContext и что сайт может закрыться из-за неактивности.

1
ответ дан 10 December 2019 в 02:55
поделиться

Я делаю рабочие потоки ответвления и потоки, которые периодически делают вещи в моем приложении ASP.NET, и у меня не было проблемы.

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

1
ответ дан 10 December 2019 в 02:55
поделиться

Честно я никогда не был поклонником попытки моделировать сервис окон в процессе ASP.net, особенно когда Вы рассматриваете, как легкий это должно создать службу Windows. Большинство попыток, которые я видел при выполнении так, было полно проблем.

0
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: