джоба выполнялась максимум раз в час? Типа есть if который может быть сработать много раз за час (а может 0), но мне нужно ограничить запуск джобы на 1 раз в час макс
Сохраняй в где-то в базе данных время, когда таска отработала последний раз. И проверяй это время в самом начале таски. Если ещё рано - просто выходи из таски ничего не делая.
Да в том то и проблема что я ищу выход без БД, может у селеры есть свой встроеный лимит
можно в какой-нибудь кэш писать. В очень крайнем случае в переменную окружения, но я бы так делать не стал.
Лимиты не надёжны. Они не хранятся в базе данных. Потому могут легко слететь (например при перезапуске) и выполнят таску раньше времени. Кроме того эти лимиты (rate-limit) работают только на уровне одного экземпляра воркера. Второй воркер, на другом сервере, ничего не знает о том сколько тасков выполнил первый.
Оо, кеш подходит, чего-то сам не додумался
типа редиса, мемкешед или что там у тебя есть
У тебя таска что-ли не сохраняет никуда результатов своей работы? Можно просто в эти результаты прописывать дату и смотреть потом на них - тогда не надо заводить отдельные сущности.
Обсуждают сегодня