فهرست منبع

Merge pull request #158 from matrix-org/dbkr/dont_accumulate_cleanup_tasks

Don't accumulate cleanup tasks
David Baker 5 سال پیش
والد
کامیت
c81f11c505
2فایلهای تغییر یافته به همراه8 افزوده شده و 6 حذف شده
  1. 0 6
      sydent/db/valsession.py
  2. 8 0
      sydent/sydent.py

+ 0 - 6
sydent/db/valsession.py

@@ -14,8 +14,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from twisted.internet import task
-
 import sydent.util.tokenutils
 
 from sydent.validators import ValidationSession, IncorrectClientSecretException, InvalidSessionIdException, \
@@ -30,10 +28,6 @@ class ThreePidValSessionStore:
         self.sydent = syd
         self.random = SystemRandom()
 
-        # Clean up old sessions every N minutes
-        cb = task.LoopingCall(self.deleteOldSessions)
-        cb.start(10 * 60.0)
-
     def getOrCreateTokenSession(self, medium, address, clientSecret):
         cur = self.sydent.db.cursor()
 

+ 8 - 0
sydent/sydent.py

@@ -21,6 +21,7 @@ import logging.handlers
 import os
 
 import twisted.internet.reactor
+from twisted.internet import task
 from twisted.python import log
 
 from db.sqlitedb import SqliteDatabase
@@ -51,6 +52,8 @@ from http.servlets.getvalidated3pidservlet import GetValidated3pidServlet
 from http.servlets.store_invite_servlet import StoreInviteServlet
 from http.servlets.v1_servlet import V1Servlet
 
+from db.valsession import ThreePidValSessionStore
+
 from threepid.bind import ThreepidBinder
 
 from replication.pusher import Pusher
@@ -185,6 +188,11 @@ class Sydent:
 
         self.pusher = Pusher(self)
 
+        # A dedicated validation session store just to clean up old sessions every N minutes
+        self.cleanupValSession = ThreePidValSessionStore(self)
+        cb = task.LoopingCall(self.cleanupValSession.deleteOldSessions)
+        cb.start(10 * 60.0)
+
     def save_config(self):
         fp = open(self.config_file, 'w')
         self.cfg.write(fp)