From: <ke...@us...> - 2006-08-04 12:13:12
|
Revision: 3387 Author: kevca Date: 2006-08-04 05:13:05 -0700 (Fri, 04 Aug 2006) ViewCVS: http://svn.sourceforge.net/mailmanager/?rev=3387&view=rev Log Message: ----------- Cache optional for Snapshot reports unusable at scale (#1521221) Concurrency improvements for getQueuedTicket performance poor (#1511256) Modified Paths: -------------- MailManager/branches/RELENG_2_1/MailManager.py MailManager/branches/RELENG_2_1/sql/v2_1/ticket.zsql Modified: MailManager/branches/RELENG_2_1/MailManager.py =================================================================== --- MailManager/branches/RELENG_2_1/MailManager.py 2006-08-04 12:10:20 UTC (rev 3386) +++ MailManager/branches/RELENG_2_1/MailManager.py 2006-08-04 12:13:05 UTC (rev 3387) @@ -866,7 +866,7 @@ """ # Remove and replace ZSQL methods. - sqlmethods = [('ticket', 'id'), ('attachment', 'id'), ('account', 'email')] + sqlmethods = [('ticket', ('id','sqv_update')), ('attachment', ('id',)), ('account', ('email',))] for (zsql_method, arguments) in sqlmethods: if zsql_method in self.objectIds(): self.manage_delObjects([zsql_method]) @@ -887,7 +887,7 @@ zsqlline = zsqlfile.readline() zsqlfile.close() - zfsm = SQLWrapper(zsql_method, zsql_method, 'mailmanager_db', arguments, data) + zfsm = SQLWrapper(zsql_method, zsql_method, 'mailmanager_db', ' '.join(arguments), data) self._setObject(zsql_method, zfsm) # Set the pluggable brain and allow direct traversal @@ -1375,7 +1375,7 @@ return self.index_html(REQUEST) security.declareProtected('MailManager Settings', 'generateMail') - def generateMail(self, account_name, quantity, REQUEST): + def generateMail(self, account_name, quantity, REQUEST=None): """Used by GenerateMail.zpt to test mail processing. This also tests createMessage. @@ -2266,7 +2266,7 @@ # Open the next ticket in the queue # FIXME: Ruleset hook should be used here instead - ticket = self.ticket(id=ticket_id)[0] + ticket = self.ticket(id=ticket_id, sqv_update=True)[0] changed_by = getSecurityManager().getUser().getUserName() if changed_by == 'Anonymous User': changed_by = '' @@ -3667,57 +3667,58 @@ and +1 to add one. Batch updates are possible with larger values. """ - cacheinfo = "%s %s %s %s %s" % ( - state, account_id, assigned, priority, count - ) - log('%sUpdating snapshot cache - %s' % (self.getLogName(), cacheinfo), - logging.DEBUG, 'snapshot.cache') + if self.snapshot_cache: + cacheinfo = "%s %s %s %s %s" % ( + state, account_id, assigned, priority, count + ) + log('%sUpdating snapshot cache - %s' % (self.getLogName(), cacheinfo), + logging.DEBUG, 'snapshot.cache') - # status and accounts - log('%sUpdating snapshot cache - status and account' % (self.getLogName()), - logging.DEBUG, 'snapshot.cache') - self.sql.addSnapshotCache( - sqv_state = state, - sqv_account = account_id, - sqv_count = count - ) + # status and accounts + log('%sUpdating snapshot cache - status and account' % (self.getLogName()), + logging.DEBUG, 'snapshot.cache') + self.sql.addSnapshotCache( + sqv_state = state, + sqv_account = account_id, + sqv_count = count + ) - # status and users - log('%sUpdating snapshot cache - status and user' % (self.getLogName()), - logging.DEBUG, 'snapshot.cache') - self.sql.addSnapshotCache( - sqv_state = state, - sqv_assigned = assigned, - sqv_count = count - ) + # status and users + log('%sUpdating snapshot cache - status and user' % (self.getLogName()), + logging.DEBUG, 'snapshot.cache') + self.sql.addSnapshotCache( + sqv_state = state, + sqv_assigned = assigned, + sqv_count = count + ) - # priority and accounts - log('%sUpdating snapshot cache - prioirty and account' % (self.getLogName()), - logging.DEBUG, 'snapshot.cache') - self.sql.addSnapshotCache( - sqv_priority = priority, - sqv_account = account_id, - sqv_count = count - ) + # priority and accounts + log('%sUpdating snapshot cache - prioirty and account' % (self.getLogName()), + logging.DEBUG, 'snapshot.cache') + self.sql.addSnapshotCache( + sqv_priority = priority, + sqv_account = account_id, + sqv_count = count + ) - # priority and users - log('%sUpdating snapshot cache - priority and user' % (self.getLogName()), - logging.DEBUG, 'snapshot.cache') - self.sql.addSnapshotCache( - sqv_priority = priority, - sqv_assigned = assigned, - sqv_count = count - ) + # priority and users + log('%sUpdating snapshot cache - priority and user' % (self.getLogName()), + logging.DEBUG, 'snapshot.cache') + self.sql.addSnapshotCache( + sqv_priority = priority, + sqv_assigned = assigned, + sqv_count = count + ) - # status and account and user - log('%sUpdating snapshot cache - status and account and user' % (self.getLogName()), - logging.DEBUG, 'snapshot.cache') - self.sql.addSnapshotCache( - sqv_state = state, - sqv_account = account_id, - sqv_assigned = assigned, - sqv_count = count - ) + # status and account and user + log('%sUpdating snapshot cache - status and account and user' % (self.getLogName()), + logging.DEBUG, 'snapshot.cache') + self.sql.addSnapshotCache( + sqv_state = state, + sqv_account = account_id, + sqv_assigned = assigned, + sqv_count = count + ) security.declareProtected('MailManager Settings', 'archiveTickets') def archiveTickets(self, to_date, account_id, state='', Modified: MailManager/branches/RELENG_2_1/sql/v2_1/ticket.zsql =================================================================== --- MailManager/branches/RELENG_2_1/sql/v2_1/ticket.zsql 2006-08-04 12:10:20 UTC (rev 3386) +++ MailManager/branches/RELENG_2_1/sql/v2_1/ticket.zsql 2006-08-04 12:13:05 UTC (rev 3387) @@ -2,8 +2,15 @@ title:Ticket (w/pluggable brain) connection_id: mailmanager_db max_rows:0 -arguments:id +arguments:id sqv_update + +Note that the arguements for this method also need updated in MailManager.py +as this is a pluggable brain object. + </dtml-comment> SELECT * FROM <dtml-var schema>mm_ticket WHERE <dtml-sqltest id type=int> +<dtml-if sqv_update> + FOR UPDATE +</dtml-if> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |