-
Notifications
You must be signed in to change notification settings - Fork 46
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