Помогите с алгоритмом очереди с частотой по времени
В бд есть список уникальных ссылок и частотой (раз в час = 60) их парсинга (таблица watchlist), Во второй таблице (pm) находятся результаты парсинга. Парсер включается каждые n-минут и собирает данные только одной ссылки. (сейчас он обходит раз в 6 минут все 9 ссылок и соответственно частота обхода каждой равна ~ 1 час) Соответственно, организована круговая очередь. Как скрипту выбрать следующую ссылку для парсинга, учитывая частоту обновления данных?
Ответы (1 шт):
Автор решения: Shilgen
→ Ссылка
@mike Ваш комментарий очень помог, реализация на postgesql:
SELECT watchlist.s, wl.update_rate,
(MAX(pm.date) + 60*watchlist.update_rate - extract(epoch from now())) as dt
FROM watchlist
LEFT JOIN pm ON pm.s = wl.s
GROUP BY watchlist.s, watchlist.update_rate
ORDER BY dt ASC LIMIT 1;