Подтвердить что ты не робот

Cronjob: запрос веб-службы

У меня есть cronjob, который работает каждый час и анализирует 150 000+ записей. Каждая запись суммируется индивидуально в таблицах MySQL. Я использую две веб-службы для получения информации о пользователе.

  • Пользовательский демографический (ip, страна, город и т.д.)
  • Информация о телефоне (если стационарный или мобильный телефон и если сотовый телефон, что является перевозчиком)

Каждый раз, когда я получаю 1 запись, я проверяю, есть ли у меня информация, и если я не позвоню этим веб-службам. После отслеживания моего кода я узнал, что оба этих вызова занимают от 2 до 4 секунд, и это делает мой cronjob очень медленным, и я не могу скомпилировать статистику по времени.

Есть ли способ сделать эти веб-службы быстрее?

Спасибо

4b9b3361

Ответ 1

просто:

получить данные локально и использовать данные меллиссы:

вы также можете кэшировать их с помощью memcache или APC, что сделает его более быстрым, поскольку ему не нужно запрашивать данные из api или базы данных.

Ответ 2

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

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