(у меня здесь есть настройка Ruby / Rails / Postgres.)
У меня есть таблица с сотнями тысяч художников, и каждый день я запускаю фоновую работу, которая обновляет различные внешние источники этих художников.
Выполнение всего этого один раз в день перегружает эти внешние API, поэтому я хочу разделить эту таблицу на 4 группы, а затем запускать эти фоновые задания 4 раза в день (т.е. каждые 6 часов).
Как разделить результаты базы данных на 4 группы?
Первоначально я собирался сделать 2 группы, а затем выполнить запрос на основе "если идентификатор исполнителя четный / нечетный", но не уверен, как это сделать для 4 групп.
Существует ли какое-то математическое уравнение, которое может правильно поставить любое число в одну из 4 групп?
В идеале я бы сделал это в самом запросе (Artist.where("id % 2 = ?", "0")
), но если впоследствии имеет смысл фильтровать полученный массив, это тоже хорошо.