25 lines
889 B
Python
25 lines
889 B
Python
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"")
|