Не запускается функция по крону
-
Пишу парсер с возможностью запуска по расписанию. Для этого в опции добавил соответствущую галочку.
function bgp_add_options_page() { add_options_page('Настройки парсера', 'Настройки парсера', 8, 'bgp_settings_page', 'bgp_options_page'); } add_action('admin_menu', 'bgp_add_options_page'); function bgp_register_settings() { add_settings_section('bgp_settings_section', '', '', __FILE__); register_setting('bgp_settings_group', 'bgp_auto_parse_enable', 'bgp_settings_scheduler'); $field_params = array( 'name' => 'bgp_auto_parse_enable', 'type' => 'checkbox' ); add_settings_field('bgp_auto_parse_enable', 'Включить автоматический парсинг', 'bgp_display_settings', __FILE__, 'bgp_settings_section', $field_params); } add_action('admin_init', 'bgp_register_settings'); function bgp_display_settings($params) { extract($params); $val = get_option($name); switch($type) { case 'checkbox': $checked = $val ? 'checked="checked"' : ''; echo "<input type=\"checkbox\" name=\"$name\" $checked />"; break; } } function bgp_settings_sanitize_checkbox($input) { return $input == 'on' ? 1 : 0; } function bgp_settings_scheduler($input) { $input = bgp_settings_sanitize_checkbox($input); if ($input) { if (!wp_next_scheduled('bgp_new_posts_scheduler')) { wp_schedule_event(time() + 10, 'ten_min', 'bgp_new_posts_scheduler'); } } else { if (wp_next_scheduled('bgp_new_posts_scheduler')) { wp_clear_scheduled_hook('bgp_new_posts_scheduler'); } } return $input; } function bgp_options_page() { ?> <div class="wrap"> <h2>Настройки</h2> <br /> <form action="options.php" method="post"> <?php settings_fields('bgp_settings_group'); ?> <?php do_settings_sections(__FILE__); ?> <?php submit_button(); ?> </form> </div> <?php } function bgp_get_new_posts() { if (!wp_next_scheduled('bgp_new_posts_scheduler')) { wp_schedule_event(time() + 10, 'ten_min', 'bgp_new_posts_scheduler'); } /// ... основная работа ... } add_filter( 'cron_schedules', 'cron_add_ten_min' ); function cron_add_ten_min( $schedules ) { $schedules['ten_min'] = array( 'interval' => 60 * 10, 'display' => 'Раз в 10 минут' ); return $schedules; } add_action('bgp_new_posts_scheduler', 'bgp_get_new_posts');
Но автозапуск не работает. Подумал, может быть не работает wp cron, отключил его
define('DISABLE_WP_CRON', true); define('ALTERNATE_WP_CRON', false);
а в crontab добавил:
*/1 * * * * php5 -q /home/artem/www/wordpress/wp-cron.php
и так
*/1 * * * * wget -q -O — http://localhost/wordpress/wp-cron.php?doing_wp_cron >/dev/null 2>&
Не помогло. Проблема в кроне или я событие неправильно создаю? Помогите пожалуйста разобраться.
Просмотр 4 ответов — с 1 по 4 (всего 4)
Просмотр 4 ответов — с 1 по 4 (всего 4)
- Тема «Не запускается функция по крону» закрыта для новых ответов.