Title: Долгое выполнение команды в WordPress
Last modified: 05.12.2019

---

# Долгое выполнение команды в WordPress

 *  [ikiterder](https://ru.wordpress.org/support/users/ikiterder/)
 * (@ikiterder)
 * [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b4%d0%be%d0%bb%d0%b3%d0%be%d0%b5-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-%d0%b2-wordpress/)
 * Уважаемые специалисты, такой вот вопрос.
 * Есть плагин для голосования с помощью 5 звезд, называется WP-postratings
 * Я добавил (между 547 и 548 строчкой) в файл [wp-postratings.php](https://github.com/lesterchan/wp-postratings/blob/master/wp-postratings.php)
   проверку при голосовании за 2 и менее звезду из 5. Вот код:
 *     ```
       if($rate < 2) {
                       printf(__('<span style="color:red"><strong>текст с просьбой уточнить почему такая низкая оценка</strong></span>'), $post_id);
                 $emails_ntl = get_option('admin_email');
                 $title_ntl = wp_strip_all_tags(get_the_title($post_id));
                 $url_ntl = get_permalink($post_id);
                 $message_ntl = "\n\nСсылка на пост {$url_ntl}\n\n Оценка {$rate}";
                 wp_mail($emails_ntl, "Оповещение о оценке «{$title_ntl}»", $message_ntl);
                       exit();
                   }
       ```
   
 * Ситуация такая: если убрать **wp_mail**, то текстовое сообщение (которое «текст
   с просьбой уточнить почему такая низкая оценка») выводится на странице моментально
   при голосовании. А если добавить wp_mail, то с существенной задержкой, где-то
   полторы секунды выводится текстовое сообщение на странице. Как убрать эту задержку?

Просмотр 4 ответов — с 1 по 4 (всего 4)

 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b4%d0%be%d0%bb%d0%b3%d0%be%d0%b5-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-%d0%b2-wordpress/#post-12168470)
 * wp_mail может тормозить если
    1. на сервере специально установлена задержка на
   отправку почты. Помнится, где-то было чуть ли не 10 секунд. Типа борьбы с рассылкой
   спама. В принципе, это ловится простым php-скриптом с вызовом mail(). 2. если
   используется smtp, и на той стороне никто никуда не спешит. Ловится более сложным
   скриптом (из-за необходимости подключения движка) с вызовом wp_mail().
 * Способ лечения зависит от диагноза.
 *  Автор [ikiterder](https://ru.wordpress.org/support/users/ikiterder/)
 * (@ikiterder)
 * [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b4%d0%be%d0%bb%d0%b3%d0%be%d0%b5-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-%d0%b2-wordpress/#post-12168487)
 * **Юрий**
 * Спасибо, что откликнулись. Проблема не в задержке отправки почты, а в задержке
   показа сообщения `<span style="color:red"><strong>текст с просьбой уточнить почему
   такая низкая оценка</strong></span>` посетителю сайта. Задержка в полторы секунды—
   очень много.
 * Если убрать строчку, отвечающую за отправку оповещения по электронной почте, 
   то приведённое выше сообщение показывается моментально.
 * Как сделать так, чтобы оно показывалось моментально, но при этом ещё и отправлялось
   оповещение по электронной почте?
    -  Ответ изменён 6 лет, 10 месяцев назад пользователем [ikiterder](https://ru.wordpress.org/support/users/ikiterder/).
 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b4%d0%be%d0%bb%d0%b3%d0%be%d0%b5-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-%d0%b2-wordpress/#post-12168490)
 * php однопоточный синхронный язык, то есть, пока один оператор/функция не завершится,
   следующий выполняться не будет. Можно попробовать сбросить буффер (flush()) до
   отправки письма, но я бы не рассчитывал, что это реально будет всегда работать.
 * Возможно, php7.* уже предоставляют какие-то возможности форка или асинхронного
   выполнеия субпрограмм, я не знаю. Кто разбирался, пусть подскажет.
 *  Модератор [Yui](https://ru.wordpress.org/support/users/fierevere/)
 * (@fierevere)
 * 永子
 * [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b4%d0%be%d0%bb%d0%b3%d0%be%d0%b5-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-%d0%b2-wordpress/#post-12168491)
 * [pcntl](https://www.php.net/manual/en/ref.pcntl.php), но, весьма ограниченно 
   и для контекста вебсервера это реально на практике не применяется, мне не попадалось.

Просмотр 4 ответов — с 1 по 4 (всего 4)

 Тема «Долгое выполнение команды в WordPress» закрыта для новых ответов.

## Метки

 * [php](https://ru.wordpress.org/support/topic-tag/php/)

 * Форум: [Проблемы и решения](https://ru.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 4 ответа
 * 3 участника
 * Последний ответ: [Yui](https://ru.wordpress.org/support/users/fierevere/)
 * Последняя активность: [6 лет, 10 месяцев назад](https://ru.wordpress.org/support/topic/%d0%b4%d0%be%d0%bb%d0%b3%d0%be%d0%b5-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-%d0%b2-wordpress/#post-12168491)
 * Статус: нерешённая

## Темы

### Самые популярные темы

### Темы без ответов

### Без вопроса

### Решённые

### Нерешённые

### Все темы
