В вики Sidekiq указано:
- Сделайте свою работу маленькой и простой
Я получаю простой, я получаю идемпотентный и транзакционный, но что такое маленький? Может быть, требуемая память и время вычислений являются хорошей мерой? Мои задания Sidekiq занимают от 10 секунд до 30 минут.
Я думаю, что 10 секунд — это нормально, но как насчет длительной задачи на 30 минут? Я загружаю все данные определенного типа из базы данных в память, провожу над ними длительные вычисления и затем записываю результаты. Все три вещи в одном рабочем месте.
Это нормально? Или вместо этого я должен вызывать из рабочего задания несколько рабочих заданий, которые выполняют небольшие вычисления? Проблема в том, что для этих небольших вычислений могут потребоваться сложные хэш-таблицы, и было предложено не сохранять их в Redis, а использовать только небольшие простые значения.