Есть ли способ автоматически запускать PHP-скрипт на веб-сервере хостинга без нашего cron?

У меня был скрипт, который каждый день отправляет смс-оповещения. Я хочу, чтобы он автоматически отправлял смс, извлекая сообщение из базы данных. Могу ли я сделать это без cron. Есть ли другое решение. Пожалуйста, помогите


person Rajasekar    schedule 26.11.2009    source источник
comment
вам понадобится другой планировщик заданий. Что не так с cron?   -  person dnagirl    schedule 26.11.2009
comment
Если вы находитесь на сервере Linux, есть ли причина, по которой вы не хотите использовать cron?   -  person tloach    schedule 26.11.2009
comment
Любой программист, достойный своего звания, был бы не против получить новые знания. Потому что я не знаю, как это не уважительное оправдание, это признак того, что вы просто не являетесь программистом.   -  person Duroth    schedule 26.11.2009
comment
Дюрот, вы правы, но это также немного резко. Раджасекар, образование — это серебряная пуля, нужно учиться расти.   -  person Mark Tomlin    schedule 26.11.2009
comment
Если вы не хотите использовать cron, потому что не знаете, как его использовать… как вы собираетесь знать, как использовать инструмент, о существовании которого вы не знаете?   -  person Quentin    schedule 26.11.2009
comment
Я понял, есть ряд сайтов, предоставляющих эту услугу. один из них mywebcron.com   -  person Rajasekar    schedule 28.11.2009
comment
Здесь дикая догадка, возможно, хост не разрешает доступ к cron? Таких хозяев много. Я предполагаю, что у спрашивающего нет выбора хоста.   -  person Benry    schedule 26.01.2010


Ответы (11)


Вы можете использовать службу webcron для запуска вашего скрипта.

person Roch    schedule 27.11.2009

Используйте внешний планировщик заданий AppEngine cron: используйте Google AppEngine, это бесплатно. Затем внешняя «задача» может «обратно вызвать» ваш PHP-скрипт.

Я не понимаю, что плохого в использовании локального cron на вашем компьютере, хотя кроме доступа к нему заблокировано.

person jldupont    schedule 26.11.2009

Проще говоря, вы не можете запускать php-скрипты без использования какого-либо планировщика или cron...

person Sarfraz    schedule 26.11.2009

У вас есть несколько вариантов:

  • Эмулируйте поведение cron: в вашем php-коде проверьте, была ли страница загружена во время или близко к тому времени, на которое вы хотите запланировать отправку, если сообщения еще не были отправлены, загрузите скрипт, который отправляет сообщения в фоновом режиме и пометить их как отправленные.

  • Как предлагали другие, настройте cronjob в другом месте, которое будет выполнять скрипт на вашем сервере, получая URL-адрес через http (например, с помощью wget)

person code_burgar    schedule 26.11.2009

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

person just somebody    schedule 26.11.2009

вы можете включить свой скрипт и запускать его каждый раз, когда кто-то посещает вашу домашнюю страницу/страницу входа в систему и т. д. ... настройте таблицу в mysql, называемую time. запрашивать базу данных каждый раз при посещении страницы. if (аргумент времени) {запустить скрипт в фоновом режиме, обновить новое время в БД}

Все, что вам нужно сделать, это выяснить, как часто вы хотите отправлять свои смс-сообщения. Бывший. 1 раз в день в строке базы данных «время» есть дата. дата позволяет сказать 24 часа назад. если строка «время» базы данных меньше или равна сегодняшнему дню минус один день 1 день, запустите свой скрипт. это будет запускать ваш скрипт один раз в день.

Недостаток -> кто-то должен посещать ваш сайт по крайней мере один раз в день.

Какой URL вашего веб-сайта? Что делаешь?

person Prez    schedule 26.01.2010

Использование стороннего webcron, например easycron.com.

person user970258    schedule 29.09.2011

Если вы не можете настроить задание cron на сервере, сделайте это на клиенте, к которому у вас есть доступ (например, на вашем компьютере), чтобы он выполнял запрос, когда вам нужно запустить сценарий.

person Matteo Riva    schedule 26.11.2009

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

  1. Настройте файл заголовка для каждой страницы.
  2. В файле заголовка поместите свою функцию/процедуру, которую вы хотели бы запустить.
  3. Сделайте оператор if, который проверяет, больше или равно ли время времени, которое вам нужно для запуска вашей процедуры, и что оно еще не было запущено.

Недостатком этого является то, что:

  1. Нет гарантированного времени обслуживания.
  2. Если ваш веб-сайт не получает просмотров, он может полностью пропустить окно.
  3. Вы добавляете как минимум 3 вызова функций на свою страницу, не говоря уже о вызовах функций, необходимых для проверки того, были ли эти процессы выполнены сегодня, которые могут включать вызов сервера MySQL или плоского файла...
person Mark Tomlin    schedule 26.11.2009

Я использовал планировщик заданий Windows для планирования сценария на сервере, к которому раньше не мог получить доступ cron, и это сработало нормально.

person Adam Dempsey    schedule 26.11.2009

Это не лучший ответ, так как он по-прежнему требует cron где-то, но вы всегда можете настроить другую машину, на которой есть cron, например, ваш домашний компьютер, чтобы перейти на страницу вашего сайта, которая запускает action (используя библиотеку типа curl или wget).

person Darren Newton    schedule 26.11.2009