Как эмулировать задания cron на Windows Server?
Я запускаю .NET в окне окна, и я хотел бы, чтобы функция запускалась каждую ночь в полночь. Конечно, поскольку HTTP-апатрид и Windows не имеют функцию типа "cron job" (что я знаю), мне придется либо посещать мой сайт каждый вечер в полночь, либо просто ждать, пока пользователь посетит сайт, чтобы полагаться при этом он обновляется.
Есть ли альтернатива этому, что я могу создать, где что-то будет автоматически запускаться в определенное время?
Спасибо
Ответы
Ответ 1
Если ни один из других ответов не работает для вас, выберите вариант:
Существует множество служб мониторинга сервера, которые будут делать HTTP-вызов на ваш сайт через регулярные промежутки времени (каждую минуту, если хотите). Вы можете получить 5-минутные интервалы бесплатно на некоторых из них.
Создайте страницу с защитой паролем, которая выполняет вашу функцию (если она еще не была выполнена сегодня), и укажите на ней эту службу.
По крайней мере, таким образом вам не придется писать что-либо дополнительно, и вы можете спокойно отдыхать, зная, что он не полагается на вашу домашнюю машину.
Ответ 2
Я уверен, что планировщик задач Windows может делать большинство вещей, которые может выполнять cron. Но я мог бы что-то упустить.
Изменить: достигнуто в настройках → Панель управления → Запланированные задания
Ответ 3
Джефф Аттвуд в какой-то момент в подкасте упомянул грязный взломать использование обратного вызова кэш-памяти для подделки.
Он вставил элемент в .Net Cache с истечением срока действия 2 часа и обратным вызовом, чтобы получить вызов после истечения срока действия элемента, и это был его cron.
Я думаю, что это была статья:
http://www.codeproject.com/KB/aspnet/ASPNETService.aspx?display=Print
Это отстой, если вы спросите меня, но для совместного решения для хостинга я не могу придумать ничего лучше.
Кроме того, существуют внешние службы cron, на которые вы указываете URL-адрес, и они будут "пинговать" его регулярно, например: (они не являются бесплатными)
http://webcron.org/
http://www.webbasedcron.com/
Ответ 4
Здесь отправная точка для программного добавления/удаления и управления задачами в Планировщике заданий.
http://www.codeproject.com/KB/system/taskscheduler.aspx
Ответ 5
Если у вас есть доступ к командной строке, вы можете попробовать команду "at", которая похожа на ультралегкий cron:
http://support.microsoft.com/kb/313565
Ответ 6
вы также можете взглянуть на Quartz.Net http://quartznet.sourceforge.net/, который является планировщиком
Ответ 7
эквивалент окна cron равен At. Если у вас есть доступ к машине.
Ответ 8
Используйте класс Timer для создания таймера, который периодически вызывает метод, который будет выполняться.
Статический таймер можно запустить в событии Application_Start в глобальном классе. Поскольку таймер использует интервал, а не абсолютное время, вам нужно будет рассчитать временной интервал до полуночи и установить свойство Interval соответственно.
Ответ 9
Похоже на GoDaddy имеет положения для этого, но есть больше, чем один способ сделать это:
Когда вы устанавливаете Drupal, вам нужно настроить работу cron, и я узнал, что участники проекта задокументировали этот шаг. Перейдите в http://drupal.org/cron для получения дополнительной информации и не забудьте прочитать http://drupal.org/node/31506 для конкретной информации Windows.
Если все остальное не удается, google для "работы в Интернете cron" и используйте коммерческую услугу "cron job". Выбирайте тщательно, не срывайте.
Ответ 10
Я также сталкиваюсь с той же проблемой. Я хочу запустить ASP.NET с MSSQL в GoDaddy. Но у них нет задачи scheule для хостинга Windows. Прочитав сообщение, я сделал свой собственный google и нашел этот бесплатный планировщик заданий для работы в Интернете:
Я просто попробовал, и он отлично работает... ну почти. Срок действия задания истекает через 1 год.
http://www.setcronjob.com/
Надеюсь, что это поможет.
Ответ 11
Если вы используете dotnetnuke, попробуйте следующее:
http://www.wwwcoder.com/tabid/68/type/art/parentid/224/site/6401/default.aspx
Ответ 12
В поисках ответа на тот же вопрос я нашел этот пост (quartz-net-with-asp-net) с инструкцией по установке для Quartz.NET ( "Планировщик рабочих заданий для платформы .NET" с их сайта) даже изнутри приложения ASP.NET.
Добавил его здесь в основном для справки.
Ответ 13
Почему бы не установить cygwin и использовать сам cron?
вот руководство по настройке pdf:
http://csc.csudh.edu/kleyba/cygwin-cron.pdf