2015-08-15 7 views
-1

Я разрабатываю плагин WordPress, который извлекает информацию о пользователе Instagram Profile и хранит в базе данных через функцию WordPress wp_remote_get(). Задача Corn запускается через каждые 24 часа, ежедневно обновляя информацию Instagram. Проблема в том, что у меня около 5000 пользователей, и сценарий работает слишком долго, и задача никогда не завершается. Все работало отлично, когда количество пользователей было ниже < 1000.Цикл через большое количество запросов через PHP

Какие настройки PHP в php.ini следует изменить для решения этой проблемы? Я установил max_execution_time в 0. Любые другие настройки? Какие-либо предложения?

+1

'Проблема, я имею о 5000+ users.' А в чем проблема с этим? Ваш скрипт работает слишком долго или что? –

+0

@u_mulder Вопрос обновлен. Да, скрипты слишком длинные. –

+0

Какой у вас сервер? Apache или Nginx? –

ответ

1

Я совет вам сделать на следующие

  • создать более одного хрон, который называют тот же файл

  • после обновления пользователя .. пометить его как обновленный

  • не обновить любого пользователя, если он помечается как обновленный

  • сделать функцию обновления транзакцией (finsh all или cancel все)

  • наконец увеличить тайм-аут также хорошо

+0

@ hi5place спасибо вам после долгого времени –

0

Трудно сделать правильную рекомендацию, не зная вашего конкретного сценария, но я бы изменил ваш код так, чтобы он посещал профиль instagram только в случае необходимости, а не для всех через работу cron. Во-первых, информация будет «более свежей», во-вторых, вы избежите проблем, которые вы описываете.

Например, когда пользователь посещает их профиль, в Instagram выполняется вызов, и данные вытягиваются. Вы сохраняете данные в своей базе данных так же, как и раньше, только с отметкой времени. Также в коде убедитесь, что он не извлекает данные, если не прошло 24 часа с момента последнего обновления. Надеюсь это поможет.

Смежные вопросы