mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-03 01:41:05 -05:00
change the redis limit tracker to annual
This commit is contained in:
@@ -159,7 +159,14 @@ def process_row(row, template, job, service, sender_id=None):
|
||||
return notification_id
|
||||
|
||||
|
||||
# TODO
|
||||
# Originally this was checking a daily limit
|
||||
# It is now checking an overall limit (annual?) for the free tier
|
||||
# Is there any limit for the paid tier?
|
||||
# Assuming the limit is annual, is it calendar year, fiscal year, MOU year?
|
||||
# Do we need a command to run to clear the redis value, or should it happen automatically?
|
||||
def __total_sending_limits_for_job_exceeded(service, job, job_id):
|
||||
|
||||
try:
|
||||
total_sent = check_service_over_total_message_limit(KeyType.NORMAL, service)
|
||||
if total_sent + job.notification_count > service.total_message_limit:
|
||||
|
||||
@@ -45,10 +45,17 @@ def check_service_over_total_message_limit(key_type, service):
|
||||
|
||||
cache_key = total_limit_cache_key(service.id)
|
||||
service_stats = redis_store.get(cache_key)
|
||||
|
||||
## Originally this was a daily limit check. It is now a free-tier limit check.
|
||||
## TODO is this annual or forever for each service?
|
||||
## TODO do we need a way to clear this out? How do we determine if it is
|
||||
## free-tier or paid? What are the limits for paid? Etc.
|
||||
## TODO
|
||||
## setting expiration to one year for now on the assume that the free tier
|
||||
## limit resets annually.
|
||||
if service_stats is None:
|
||||
# first message of the day, set the cache to 0 and the expiry to 24 hours
|
||||
service_stats = 0
|
||||
redis_store.set(cache_key, service_stats, ex=86400)
|
||||
redis_store.set(cache_key, service_stats, ex=365*24*60*60)
|
||||
return service_stats
|
||||
if int(service_stats) >= service.total_message_limit:
|
||||
current_app.logger.warning(
|
||||
|
||||
Reference in New Issue
Block a user