Wp_User_Query тайм-аут - PullRequest
       0

Wp_User_Query тайм-аут

0 голосов
/ 22 января 2020

У меня есть многосайтовый сайт WordPress, на котором зарегистрировано 70 тыс. Пользователей, и при выполнении пользовательского запроса он истекает на сервере с максимальным временем выполнения, равным 3 минутам. Во-первых, запрос не должен занимать слишком много времени. Что может быть причиной этой проблемы? См. Запрос ниже.

$args = array (
    'role'      => 'employer',
    'order'     => 'DESC',
    'orderby'   => 'user_registered',
    'blog_id'   => 4,
);

Когда я использую этот код с blog_id = 0. Сервер не выполняет тайм-аут и завершает запрос, однако возвращает всех пользователей независимо от роли.

Ответы [ 2 ]

1 голос
/ 22 января 2020

Ваш запрос медленный по многим причинам. Возможно, самой большой причиной является использование WP_User_Query, которое, ну, ну, не следует использовать. (Если был конкурс Rube Goldberg за код, необходимо ввести class-wp-user-query. php.)

И, наконец, методы WP get_results() никогда не должны использоваться, когда запрос может вернуть большой объем данных; они могут вызвать проблемы с процессором и памятью . Используйте while() l oop и получайте результаты построчно.

0 голосов
/ 22 января 2020

Добавьте строку ниже перед вашим запросом. Это решит вашу проблему, если возникнет проблема с тайм-аутом выполнения.

set_time_limit(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...