Mohammad Nawaz Ответов: 1

Для ежедневного запуска веб-формы в общем хостинге (например, godaddy)


Сэр / Мадам,
Я разработал веб-сайт. Все работает нормально, за исключением одной проблемы. На самом деле мне нужно запустить форму, чтобы узнать, есть ли у конкретного дня какие-то события или нет, если событие, то отправить сообщение этому клиенту, например, пожелания дня рождения, юбилея и т. д., И у меня есть таблица для этого. Но я не знаю, как запланировать эту задачу в общем хостинге.

Что я уже пробовал:

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

Sergey Alexandrovich Kryukov

Нет такого понятия, как"запустить форму". Форма визуализируется по HTTP-запросу и генерирует некоторый HTTP-запрос, вот и все.
Вы можете использовать Server push для визуализации чего-то на странице, когда обрабатывается какое-то событие на стороне сервера, но это совсем другое дело.
—СА

kimi2017

Если вы ищете более простое решение, вы можете рассмотреть такие сервисы cron, как easycron.com который будет загружать определенный URL-адрес в данный момент времени.

1 Ответов

Рейтинг:
2

Jacob Himes

То, что вам нужно реализовать, называется веб-заданием (cron job in Go Daddy). Однако я не уверен, что Go Daddy разрешает задания на основе exe.

Планирование задач с помощью Plesk Shared Hosting | Windows Hosting (Plesk) - справка GoDaddy[^]

Я настоятельно рекомендую использовать облачный сервис, который больше подходит для приложений на базе .Net, таких как Azure. С помощью Azure вы можете запланировать запуск exe-файла с заданным интервалом, а также просто загрузить этот exe-файл, и он будет использовать те же параметры конфигурации приложения, что и ваш веб-сайт. Это будет стоить немного больше, чем GoDaddy, но вы получите гораздо больше возможностей, и все будет вручено вам на серебряном блюде.

Когда вы делаете это веб-задание, не создавайте службу windows, создайте консольное приложение.

Удачи!

Ссылка на azure
Microsoft Azure: Платформа Облачных Вычислений[^]


Sergey Alexandrovich Kryukov

Это действительно полезная информация и может быть даже то, что нужно исследователю. Но для начала было бы важно отбросить неправильное представление исследователя о "выполнении формы".
Кстати, почему именно консольное приложение? И как бы вы предотвратили его запуск несколько раз? Просто спрашиваю...
—СА

Jacob Himes

Да, вы совершенно правы, это заблуждение необходимо устранить. На самом деле я все еще не уверен, встретил ли клиент веб-форму или форму windows, так как позже в этом вопросе он упоминает, что пытался написать службу windows. Это распространенное заблуждение начинающих создавать пустую форму windows для выполнения задачи, которая не требует взаимодействия с пользователем.

Консольные приложения отлично подходят для веб-заданий и рекомендуются вместе с файлами bat и другими типами файлов сценариев. Веб-задание управляет временем жизни приложения. Он запускает консольное приложение...ждет его завершения, а затем не будет запускать его снова до следующего запланированного времени. Консольные приложения, если они написаны правильно, закрываются после завершения выполнения. Если требуется непрерывное задание, консольное приложение записывается в виде бесконечного цикла. Кроме того, все выходные данные приложения хранятся в облачном журнале. Это стандартно для облачных решений, таких как Azure, BlueMix и Amazon.

Вот ссылка на то, как работает веб-задание в Azure.

https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/

Sergey Alexandrovich Kryukov

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

Я все еще сомневаюсь в этих консольных приложениях. С чего их начинать, когда, на каком мероприятии? С сервисом Windows все более понятно; они могут автоматически запускаться... Я имею в виду, что если по какой-то причине какой-то HTTP-запрос запускает консольное приложение, то многие из них могут быть запущены. Конечно, я понимаю, как создать приложение с одним экземпляром; проблема заключается в самом принципе.

—СА

Jacob Himes

Управление консольным приложением не заботится о пользовательской реализации. Консольное приложение запускается запланированной задачей, как в это время суток, а не http-запросом или запросом, выполняемым по расписанию. Это почти то же самое, что запланировать запуск программы на локальном компьютере с Windows в определенное время суток. Он выполняется тканью облачной среды PaaS. Служба Windows-это не вариант, если у вас нет виртуальной машины, которая стоит еще несколько долларов, у OP есть общий веб-экземпляр, они не запускают службы windows.

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

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

Sergey Alexandrovich Kryukov

Ах, теперь я понимаю, что вы имели в виду, спасибо. Но тогда это может быть не консольное приложение, а приложение без каких-либо консолей и каких-либо окон. Формально говоря, это "оконное приложение". Модель разработки Microsoft, особенно в .NET или просто в Visual Studuo, очень запутанна. Они предлагают типы приложений " консольные "и" оконные приложения", но на самом деле таких вещей нет. Эти параметры на самом деле являются "показать консоль" и "не показывать консоль", без чего-либо вроде "приложения Windows". На стороне сервера я вообще не вижу смысла что-либо показывать. На эту консоль некому смотреть. :-)
Выход может быть просто протоколированием.
—СА

Jacob Himes

Очень верно, его раздражает номенклатура мира Дэв.