Задание Cron для XML-выборки:Как часто и сколько выборок выполняется?

StackOverflow https://stackoverflow.com/questions/411512

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть PHP-скрипт на общем веб-хостинге, который выбирает из ~ 300 "каналов" 40, которые не обновлялись за последние полчаса, делает запрос cURL и затем доставляет его пользователю.

SELECT * FROM table WHERE latest_scan < NOW() - INTERVAL 30 MINUTE ORDER BY latest_scan ASC LIMIT 0, 40;
// Make cURL request and process it

Я хочу иметь возможность доставлять обновления как как можно быстрее, но я не хочу перегружать свой сервер или серверы, с которых я получаю данные (их всего несколько).

Как часто я должен запускать задание cron и должен ли я ограничить количество выборок за один запуск?Скольким?

Это было полезно?

Решение

Было бы неплохо "оценить", как часто на самом деле меняется каждый канал, поэтому, если что-то имеет среднее время изменения 24 часа, то вы просто извлекаете это каждые 12 часов.

Просто сохраните #изменения и #попробуйте и выберите те, которые вам нужно проверить...вы можете запускать скрипт каждую минуту, а остальное пусть сделает статистика!

Другие советы

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

Еще одна вещь, которую я должен был сделать, чтобы исправить это, - пометить " последнее сканирование " как обновлено до , я обработал каждый отдельный запрос, чтобы проблемный фид не продолжал давать сбой и собирался при каждом запуске cron. При желании вы можете обновить запись снова при сбое и указать причину (если известна), по которой произошел сбой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top