Поддержка Плагины Функция для запуска скрипта раз в сутки

  • Всем привет. Подскажите пожалуйста. В WP есть такая функция, которая будет запускать скрипт раз в сутки? Например для создания файла XML и обновления данных в БД.

Просмотр 12 ответов — с 16 по 27 (всего 27)
  • Как тогда лучше прописать скрипт, чтобы запланированное действие выполнялось в определенно время?

    Я понимаю это должно работать так, функция wp_schedule_event срабатывает 1 раз в час (например)

    wp_schedule_event( time(), 'hourly', 'my_hourly_event');
    
    add_action('my_hourly_event', 'do_this_hourly');
    function do_this_hourly() {
    проверяет текущее время если оно совпадает или больше то выполняется нужная мне функция
    }
    Модератор Yuri

    (@yube)

    Я понимаю это должно работать так, функция wp_schedule_event срабатывает 1 раз в час

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

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

    А как сделать так, чтобы планировщик делал это не каждый час (например), а именно в нужное мне время, только в 12.00 (по местному времени). Я правильно понял, что это уже надо самому скрипт дописывать? Например можно так, получить текущее время current_time(‘mysql’, 0), потом сравнить его со временем которое нужно мне и если оно совпадает или больше этого времени, то скрипт идет дальше, если нет, то ничего не делает. Или есть уже готовый способ в какой-то функции?

    Заметил в логах, к cron очень часто делает запросы к серверу

    [05/Feb/2015:20:30:03 +0300] "POST /wp-cron.php?doing_wp_cron=1423157403.7565200328826904296875
    [05/Feb/2015:20:31:04 +0300] "POST /wp-cron.php?doing_wp_cron=1423157464.4064600467681884765625 HTTP/1.0" 403 213
    [05/Feb/2015:20:32:31 +0300] "POST /wp-cron.php?doing_wp_cron=1423157551.0160520076751708984375 HTTP/1.0" 403 213
    [05/Feb/2015:20:34:09 +0300] "POST /wp-cron.php?doing_wp_cron=1423157649.6996619701385498046875 HTTP/1.0" 403 213
    [05/Feb/2015:20:34:09 +0300] "POST /wp-cron.php?doing_wp_cron=1423157649.4779689311981201171875 HTTP/1.0" 403 213

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

    Модератор Yui

    (@fierevere)

    永子

    Не тот файл смотрел
    
    wp-cron.php 200

    403 у вас в логе, вордпресс пытается выполнить текущее запланированное задание, а сервер ему не разрешает… вот и много попыток, безуспешных

    Теперь 200, но это не помогло. Даже запланированные посты не публикуются.

    А частые запросы Cron к серверу так и стались

    [05/Feb/2015:21:00:12 +0300] "POST /wp-cron.php?doing_wp_cron=1423159212.5217270851135253906250 HTTP/1.0" 200
    [05/Feb/2015:21:01:12 +0300] "POST /wp-cron.php?doing_wp_cron=1423159272.7003760337829589843750 HTTP/1.0" 200

    Модератор Yuri

    (@yube)

    Поставьте какой-нибудь плагин, позволяющий посмотреть запланированные задачи, например, Advanced Cron Manager, и посмотрите, чем хрон занимается.

    Запланированные посты заработали…

    Может быть это из=за точно что я wp-config отредактировал через тестовый редактор Windows? (убрал define (‘DISABLE_WP_CRON’, true);) И появились эти лаги, cron запросы отправлял. а пост не публиковался.

    Потом сделал откат wp-config и отредактировал его уже через DW, все заработало.

    Поставьте какой-нибудь плагин, позволяющий посмотреть запланированные задачи, например, Advanced Cron Manager, и посмотрите, чем хрон занимается.

    Хук sm_ping_daily зачем-то каждые 2 минуты запускается.

    Сейчас вроде все нормально. Всем большое спасибо за помощь.

    Народ, подскажите, что за хук такой у крона «do_pings»? За что он отвечает?

    Модератор Yuri

    (@yube)

    «do_pings»? За что он отвечает?

    Судя по его имени, за пинги 🙂 И трекбэки.
    Это то, про что на странице редактирования записи написано

    Обратные ссылки — это способ уведомить другие блоги, что вы сослались на них. Если вы ссылаетесь на блог под управлением WordPress, уведомление будет отправлено ему автоматически, дополнительных действий не требуется

    По понятным причинам пингование осуществляется асинхронно, то есть, задача вешается на хрон.

Просмотр 12 ответов — с 16 по 27 (всего 27)
  • Тема «Функция для запуска скрипта раз в сутки» закрыта для новых ответов.