| def main(request, response): | |
| # |token| should be a unique UUID request parameter for the duration of this | |
| # request. It will get stored in the server stash and will be used later in | |
| # a query request. | |
| # |query| should be a request parameter indicating the request would like | |
| # to know how many times the server has seen the request (with the | |
| # same token). | |
| token = request.GET.first(b"token", None) | |
| is_query = request.GET.first(b"query", None) is not None | |
| with request.server.stash.lock: | |
| value = request.server.stash.take(token) | |
| count = 0 | |
| if value is not None: | |
| count = int(value) | |
| if is_query: | |
| request.server.stash.put(token, count) | |
| else: | |
| count += 1 | |
| request.server.stash.put(token, count) | |
| headers = [] | |
| if is_query: | |
| headers = [(b"Count", count)] | |
| return (200, headers, b"") |