Что Лучшая практика к Процессу техобслуживания Начала на [закрытом] ASP.NET

Не можете ли вы использовать ngOnInit, потому что вы просто изменяете переменную-член message?

Если вы хотите получить ссылку на дочерний компонент @ViewChild(ChildComponent), вам действительно нужно подождать это с ngAfterViewInit.

Грязное исправление - вызвать updateMessage() в следующем цикле событий, например, setTimeout.

ngAfterViewInit() {
  setTimeout(() => {
    this.updateMessage();
  }, 1);
}
7
задан Bramha Ghosh 5 September 2008 в 13:38
поделиться

5 ответов

Вот способ, которым StackOverflow делает это:

private static CacheItemRemovedCallback OnCacheRemove = null;

protected void Application_Start(object sender, EventArgs e)
{
    AddTask("DoStuff", 60);
}

private void AddTask(string name, int seconds)
{
    OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
    HttpRuntime.Cache.Insert(name, seconds, null,
        DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
        CacheItemPriority.NotRemovable, OnCacheRemove);
}

public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)
{
    // do stuff here if it matches our taskname, like WebRequest
    // re-add our task so it recurs
    AddTask(k, Convert.ToInt32(v));
}

Подробнее: http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

11
ответ дан 6 December 2019 в 12:56
поделиться

Один способ сделать это, если Вы не должны делать этого на запланированном времени, но просто должны вымыться "время от времени", должно создать функцию в Вашем Global.asax Session_OnEnd (), который создаст случайное число между 1 и 100, и если число, говорят, 50, Вы выполняете задачу обслуживания.

Offcourse, которые можно уменьшить "100", чтобы иметь задачу, происходят более часто.

Также существует, и статья, названная ', Моделируют службу Windows с помощью ASP.NET для выполнения запланированных заданий' по http://www.codeproject.com/aspnet/ASPNETService.asp, который использует истекающий кэш для моделирования таймера. Это утверждает, что может быть выполнено на любом размещенном сайте.

При использовании последнего прочитайте этот комментарий из сообщения об этой технике:

Необходимо действительно быть осторожными на продолжительности выполнения задачи. Каждой новой Задачей является новый Рабочий поток и существует ограниченное количество тех - поскольку это “одалживает” поток у управляемого пула потоков.

При запуске в v3.5 Платформы максимальное число потоков было увеличено 10x от 25 до 250. Но существует теперь логарифмический запуск им, поэтому поскольку он скупо выдает больше потоков, это становится более скупым с ними. Если у Вас заканчиваются доступные потоки в управляемом пуле потоков - Ваше время отклика собирается пройти крышу.

Что Вы действительно пишете, вот обмен сообщениями/система массового обслуживания.

Если Вы делаете вещи как обновление кэша, то любой ценой - начинают новую задачу. Если Вы делаете, что-то как загрузка вторичного ресурса HTTP или некоторой интенсивной работы базы данных - пишет службу Windows и использует Очередь, которая позволяет Вам больше управления, сколько Вы “кусаете” от каждого раза.

2
ответ дан 6 December 2019 в 12:56
поделиться

В то время как решение для Кэша работает на простые случаи, если Ваши потребности планирования когда-нибудь будут изменяться, то Вам не повезет. Вместо этого Вы могли использовать Quartz.NET, порт популярного Кварца платформы Java, который очень гибок.

2
ответ дан 6 December 2019 в 12:56
поделиться

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

1
ответ дан 6 December 2019 в 12:56
поделиться

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

В основном то, что это делает, является хитами страница, к которой Вы запрашиваете это в расписании, которое Вы запрашиваете.

У Вас по существу могло быть что-либо, поразил страницу в регулярный график, который начнет Вашу задачу обслуживания.

Jeff и Joel также обсудили выполнение подобных вещей в недавнем подкасте с помощью других методов.

0
ответ дан 6 December 2019 в 12:56
поделиться
Другие вопросы по тегам:

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