annotate detectors/newissuecopy.py @ 6747:d32d43e4a5ba

wsgi can cache tracker instance enabled by feature flag. Patch by Marcus Priesch caches a loaded tracker instance and reuse it for future client sessions. It is enabled by a feature flag in wsgi.py since it arrived during the 2.2.0 beta period. The provided wsgi.py is modified to enable it. Testing is run with flag enabled and disabled. Ralf Schlatterbeck and Marcus tested it on one of their larger more complex trackers and it sped up the response time to a client request by a factor of 3 (270ms down to about 80-85ms).
author John Rouillard <rouilj@ieee.org>
date Sat, 02 Jul 2022 14:04:00 -0400
parents 198b6e810c67
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4627
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
1 # copied from nosyreaction
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
2
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
3 from roundup import roundupdb
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
4
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
5 def newissuecopy(db, cl, nodeid, oldvalues):
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
6 ''' Copy a message about new issues to a team address.
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
7 '''
5242
39c9f69c3f31 OpenPGP: Extends newissuecopy.py to encrypt if configured.
Bernhard Reiter <bernhard@intevation.de>
parents: 4627
diff changeset
8 # get relevant crypto settings
39c9f69c3f31 OpenPGP: Extends newissuecopy.py to encrypt if configured.
Bernhard Reiter <bernhard@intevation.de>
parents: 4627
diff changeset
9 encrypt = db.config.PGP_ENABLE and db.config.PGP_ENCRYPT
39c9f69c3f31 OpenPGP: Extends newissuecopy.py to encrypt if configured.
Bernhard Reiter <bernhard@intevation.de>
parents: 4627
diff changeset
10
4627
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
11 # so use all the messages in the create
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
12 change_note = cl.generateCreateNote(nodeid)
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
13
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
14 # send a copy to the nosy list
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
15 for msgid in cl.get(nodeid, 'messages'):
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
16 try:
5242
39c9f69c3f31 OpenPGP: Extends newissuecopy.py to encrypt if configured.
Bernhard Reiter <bernhard@intevation.de>
parents: 4627
diff changeset
17 # note: fourth arg must be a list
39c9f69c3f31 OpenPGP: Extends newissuecopy.py to encrypt if configured.
Bernhard Reiter <bernhard@intevation.de>
parents: 4627
diff changeset
18 cl.send_message(nodeid, msgid, change_note,
39c9f69c3f31 OpenPGP: Extends newissuecopy.py to encrypt if configured.
Bernhard Reiter <bernhard@intevation.de>
parents: 4627
diff changeset
19 ['team@team.host'],
39c9f69c3f31 OpenPGP: Extends newissuecopy.py to encrypt if configured.
Bernhard Reiter <bernhard@intevation.de>
parents: 4627
diff changeset
20 crypt=encrypt)
5248
198b6e810c67 Use Python-3-compatible 'as' syntax for except statements
Eric S. Raymond <esr@thyrsus.com>
parents: 5242
diff changeset
21 except roundupdb.MessageSendError as message:
198b6e810c67 Use Python-3-compatible 'as' syntax for except statements
Eric S. Raymond <esr@thyrsus.com>
parents: 5242
diff changeset
22 raise roundupdb.DetectorError(message)
4627
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
23
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
24 def init(db):
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
25 db.issue.react('create', newissuecopy)
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
26
6b32e9dac625 Restore sample detectors removed by 07c5d833dcb2 (issue2550574)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
27 # vim: set filetype=python ts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/