-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Description
- The PR Add rate limit to batch request result generation #1554 added
request_already_generating
.
This is used in the get_request
(/api/batch/v2/requests/<request_id>
):
Internet.nl/interface/batch/util.py
Lines 937 to 945 in cef300d
if ( | |
batch_request.status == BatchRequestStatus.done | |
and not batch_request.has_report_file() | |
and not request_already_generating(batch_request.request_id) | |
): | |
batch_async_generate_results.delay(user=user, batch_request=batch_request, site_url=get_site_url(request)) | |
lock_id = redis_id.batch_results_request_lock.id.format(batch_request.request_id) | |
cache.add(lock_id, True) |
However a direct call to results
(/api/batch/v2/requests/<request_id>/results[technical]
) does not seem to do this check:
Internet.nl/interface/batch/views.py
Lines 62 to 74 in cef300d
def results(request, request_id, *args, technical=False, **kwargs): | |
user = kwargs["batch_user"] | |
try: | |
batch_request = BatchRequest.objects.get(user=user, request_id=request_id) | |
except BatchRequest.DoesNotExist: | |
return unknown_request_response() | |
if batch_request.status != BatchRequestStatus.done: | |
return bad_client_request_response("The request is not yet `done`.") | |
else: | |
if not batch_request.has_report_file(): | |
batch_async_generate_results.delay(user=user, batch_request=batch_request, site_url=get_site_url(request)) | |
return bad_client_request_response("The request is not yet `done`.") |
I think the conditional check should be added to the latter too?
Metadata
Metadata
Assignees
Labels
No labels