У меня был скрипт, который каждый день отправляет смс-оповещения. Я хочу, чтобы он автоматически отправлял смс, извлекая сообщение из базы данных. Могу ли я сделать это без cron. Есть ли другое решение. Пожалуйста, помогите
Есть ли способ автоматически запускать PHP-скрипт на веб-сервере хостинга без нашего cron?
Ответы (11)
Используйте внешний планировщик заданий AppEngine cron: используйте Google AppEngine, это бесплатно. Затем внешняя «задача» может «обратно вызвать» ваш PHP-скрипт.
Я не понимаю, что плохого в использовании локального cron
на вашем компьютере, хотя кроме доступа к нему заблокировано.
Проще говоря, вы не можете запускать php-скрипты без использования какого-либо планировщика или cron...
У вас есть несколько вариантов:
Эмулируйте поведение cron: в вашем php-коде проверьте, была ли страница загружена во время или близко к тому времени, на которое вы хотите запланировать отправку, если сообщения еще не были отправлены, загрузите скрипт, который отправляет сообщения в фоновом режиме и пометить их как отправленные.
Как предлагали другие, настройте cronjob в другом месте, которое будет выполнять скрипт на вашем сервере, получая URL-адрес через http (например, с помощью wget)
настройте задачу cron в другом месте, пусть она запросит сценарий, который отправляет предупреждения.
вы можете включить свой скрипт и запускать его каждый раз, когда кто-то посещает вашу домашнюю страницу/страницу входа в систему и т. д. ... настройте таблицу в mysql, называемую time. запрашивать базу данных каждый раз при посещении страницы. if (аргумент времени) {запустить скрипт в фоновом режиме, обновить новое время в БД}
Все, что вам нужно сделать, это выяснить, как часто вы хотите отправлять свои смс-сообщения. Бывший. 1 раз в день в строке базы данных «время» есть дата. дата позволяет сказать 24 часа назад. если строка «время» базы данных меньше или равна сегодняшнему дню минус один день 1 день, запустите свой скрипт. это будет запускать ваш скрипт один раз в день.
Недостаток -> кто-то должен посещать ваш сайт по крайней мере один раз в день.
Какой URL вашего веб-сайта? Что делаешь?
Если вы не можете настроить задание cron на сервере, сделайте это на клиенте, к которому у вас есть доступ (например, на вашем компьютере), чтобы он выполнял запрос, когда вам нужно запустить сценарий.
Это не оптимально, но без использования какого-либо планировщика вы можете сделать вот что.
- Настройте файл заголовка для каждой страницы.
- В файле заголовка поместите свою функцию/процедуру, которую вы хотели бы запустить.
- Сделайте оператор if, который проверяет, больше или равно ли время времени, которое вам нужно для запуска вашей процедуры, и что оно еще не было запущено.
Недостатком этого является то, что:
- Нет гарантированного времени обслуживания.
- Если ваш веб-сайт не получает просмотров, он может полностью пропустить окно.
- Вы добавляете как минимум 3 вызова функций на свою страницу, не говоря уже о вызовах функций, необходимых для проверки того, были ли эти процессы выполнены сегодня, которые могут включать вызов сервера MySQL или плоского файла...
Я использовал планировщик заданий Windows для планирования сценария на сервере, к которому раньше не мог получить доступ cron, и это сработало нормально.
Это не лучший ответ, так как он по-прежнему требует cron где-то, но вы всегда можете настроить другую машину, на которой есть cron, например, ваш домашний компьютер, чтобы перейти на страницу вашего сайта, которая запускает action (используя библиотеку типа curl
или wget
).
cron
? - person dnagirl   schedule 26.11.2009