Mercurial > p > roundup > code
annotate roundup/version_check.py @ 6565:2c2dbfc332ba
Try to handle multiple connections better.
The session database is a hot spot. When multiple requests (e.g. 20)
come in at the same time session database contention can get great.
The original code didn't retry session database access when the open
failed. This resulted in errors at the client.
The second pass delayed 0.01 seconds and retried. It was better but we
still had multiple second stalls. I think the first request got in,
everybody else backed up and then retried at the same time. Again they
stepped on each other. With logging I would see many counters go all
the way to low single digits or to -1 indicating falure.
This pass uses randomint to generate delays from 0-.125 seconds in 5ms
increments. This performs better in testing. I rarely saw a counter
less than 13 (2 failed retries). Current logging starts after 6
failures and counts down until success or failure.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Thu, 16 Dec 2021 20:02:00 -0500 |
| parents | 9223ed67af05 |
| children | f72381d300a4 |
| rev | line source |
|---|---|
|
449
141aacfdb34f
Centralised the python version check code, bumped version to 2.1.1
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
2 |
|
5321
4566360871dc
Raises python requirement to 2.7.
Bernhard Reiter <bernhard@intevation.de>
parents:
4682
diff
changeset
|
3 # Roundup requires Python 2.7+ as mentioned in doc\installation.txt |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5321
diff
changeset
|
4 from __future__ import print_function |
|
6016
9223ed67af05
flake8 cleanup: move module import before statement.
John Rouillard <rouilj@ieee.org>
parents:
5376
diff
changeset
|
5 import sys |
|
449
141aacfdb34f
Centralised the python version check code, bumped version to 2.1.1
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
6 |
|
6016
9223ed67af05
flake8 cleanup: move module import before statement.
John Rouillard <rouilj@ieee.org>
parents:
5376
diff
changeset
|
7 VERSION_NEEDED = (2, 7) |
|
9223ed67af05
flake8 cleanup: move module import before statement.
John Rouillard <rouilj@ieee.org>
parents:
5376
diff
changeset
|
8 |
|
4682
0c2cad65ebba
version_check.py: Bump required Python version from 2.1.1+ to 2.5+
anatoly techtonik <techtonik@gmail.com>
parents:
4570
diff
changeset
|
9 if sys.version_info < VERSION_NEEDED: |
|
5376
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5321
diff
changeset
|
10 print("Content-Type: text/plain\n") |
|
64b05e24dbd8
Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5321
diff
changeset
|
11 print("Roundup requires Python %s.%s or newer." % VERSION_NEEDED) |
|
449
141aacfdb34f
Centralised the python version check code, bumped version to 2.1.1
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
12 sys.exit(0) |
