Запуск запланированной задачи в подключаемом модуле Wordpress

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

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

Есть ли хороший способ запланировать задачу, которая запускается из подключаемого модуля Wordpress? Необязательно запускать в нужное время.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
0
2 570
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

vBulletin использует своего рода систему Pseudo-Cron, которая в основном проверяет расписание при каждом доступе к странице и запускает все процессы, которые должны быть выполнены.

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

Если бы вы сделали его зависимым от каждой попытки спама в комментариях, вы могли бы иметь точность до миллисекунды. :-)

Paul Tomblin 10.09.2008 17:47

Я думаю, что лучший способ сделать это - использовать псевдо-cron. Я видел его несколько раз, и хотя он не был точным по времени, он должен делать то, что вам нужно. Поскольку в Wordpress index.php - это первое, на что всегда обращаются в зависимости от настроек в .htaccess, создайте файл с именем pseudo-cron.php, сбросьте его в корневой каталог, а затем потребуйте его один раз из индекса. Всякий раз, когда кто-то заходит на сайт, он запускается, и вы можете использовать его для запуска сценария и проверки необходимости создания еще одного ежедневного дайджеста в зависимости от времени суток и времени запуска предыдущего дайджеста.

Ответ принят как подходящий

псевдо-cron хорош, но у него есть две проблемы:

1. Для выполнения требуется, чтобы кто-то «ударил» по блогу. Сайты с небольшим объемом потенциально могут иметь широкий диапазон времени выполнения, поэтому не указывайте конкретное время.

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

Только мои 2 цента :-)

Я думаю, ты ошибаешься насчет №2. WordPress генерирует асинхронный вызов curl () для запуска задания, поэтому для посетителей нет заметной задержки. Если вы хотите обходной путь №1, вы можете настроить задание cron на `wget example.com/wp-cron.php '.

Ian Dunn 01.09.2012 01:43

Другие вопросы по теме