Помогите с алгоритмом очереди с частотой по времени

В бд есть список уникальных ссылок и частотой (раз в час = 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;
→ Ссылка