как писать в текстовый файл постоянно, пока сайт работает - PullRequest
0 голосов
/ 13 июня 2011

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

Возможно ли это?

РЕДАКТИРОВАТЬ: глупо упускать из виду использование веб-службы для генерации номера - я выбил базовую службу, которая генерирует число и записывает его в текстовый файл. Не могу понять, как это запланировать / автоматизировать - могу ли я установить таймер с заданным интервалом, а затем использовать timer_Tick?

Планирование является новым для меня, любой совет приветствуется.

Ответы [ 4 ]

0 голосов
/ 13 июня 2011

Пожалуйста, опишите, чего вы пытаетесь достичь.Там может быть лучший способ, чем запись случайных чисел в файл.

Я бы не использовал службу (веб или winservice) для этого.Нет смысла использовать веб-сервис, поскольку он будет работать точно так же, как ваш веб-сервис.Служба Windows будет продолжать работать независимо от вашей сети, и вам нужно будет создать своего рода IPC и отслеживать несколько таймеров / файлов.

Самый простой способ сделать это - использовать System.Threading.Timerи держать его в переменной сеанса.Также обратите внимание, что вам нужно убить его, когда истечет время сеанса пользователя.

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

Обновление

Создайте приложение службы Windows и добавьте к нему System.Threading.Timer.Запишите файл в обратном вызове таймера.

Затем откройте текстовый файл в своем веб-приложении (используя FileShare.ReadWrite + FileMode.Read)

0 голосов
/ 13 июня 2011

Вы можете использовать Window Service для работы в фоновом режиме, см. Ссылку ниже:
http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx
http://www.codeguru.com/columns/dotnet/article.php/c6919

0 голосов
/ 13 июня 2011

Не уверен, что это то, что вы хотите. Но если вам интересно использовать планировщик для этой задачи, вы можете попробовать Quartz.Net . Это очень популярная, полнофункциональная система планирования с открытым исходным кодом.

0 голосов
/ 13 июня 2011

Рассматривали ли вы использование запланированных заданий? Таким образом, вместо страницы, вызывающей обновления, запланированная задача делает это, а средство просмотра страниц просто видит «последние результаты» в любой конкретный момент. Конечно, это может быть неосуществимо, но, судя по звукам, вам нужна постоянно работающая служба / задача с возможностью просмотра последнего номера, немного похожего на токен RSA, который показывает новые нумераторы, даже если вам это не нужно один.

...