• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

allura


Commit MetaInfo

Revision76e8541ce0e07c18474db2bcd9a686da0a30ae5b (tree)
Zeit2010-08-20 06:46:58
AutorRick Copeland <rcopeland@geek...>
CommiterRick Copeland

Log Message

[#765] - speed up ticket stats page so it doesn't time out, leading to an nginx 504 which is translated to a 500

Ändern Zusammenfassung

Diff

--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -270,6 +270,7 @@ class Artifact(MappedClass):
270270 class __mongometa__:
271271 session = artifact_orm_session
272272 name='artifact'
273+ indexes = [ 'app_config_id' ]
273274 def before_save(data):
274275 data['mod_date'] = datetime.utcnow()
275276 if c.project:
@@ -547,7 +548,7 @@ class Message(Artifact):
547548 class __mongometa__:
548549 session = artifact_orm_session
549550 name='message'
550- indexes = [ 'slug', 'parent_id' ]
551+ indexes = Artifact.__mongometa__.indexes + [ 'slug', 'parent_id', 'timestamp' ]
551552 type_s='Generic Message'
552553
553554 _id=FieldProperty(str, if_missing=h.gen_message_id)
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -26,7 +26,7 @@ from allura.lib.search import search_artifact
2626 from allura.lib.decorators import audit, react
2727 from allura.lib.security import require, has_artifact_access
2828 from allura.model import ProjectRole, TagEvent, UserTags, ArtifactReference, Feed, User
29-from allura.model import Mailbox
29+from allura.model import Mailbox, Post
3030 from allura.lib import widgets as w
3131 from allura.lib.widgets import form_fields as ffw
3232 from allura.lib.widgets.subscriptions import SubscribeForm
@@ -440,19 +440,11 @@ class RootController(BaseController):
440440 return count
441441
442442 def ticket_comments_since(self, when=None):
443- count = 0
444- q = []
445- tickets = model.Ticket.query.find(dict(app_config_id=c.app.config._id))
446- if when:
447- for ticket in tickets:
448- posts = ticket.discussion_thread().find_posts(limit=None,
449- style='linear', timestamp={'$gte':when})
450- count = count + len(posts)
451- else:
452- for ticket in tickets:
453- posts = ticket.discussion_thread().find_posts(limit=None, style='linear')
454- count = count + len(posts)
455- return count
443+ q = dict(
444+ discussion_id=c.app.config.discussion_id)
445+ if when is not None:
446+ q['timestamp'] = {'$gte':when}
447+ return Post.query.find(q).count()
456448
457449 @with_trailing_slash
458450 @expose('forgetracker.templates.stats')