@@ -25,6 +25,7 @@ const { ProcessQueue } = require('./processQueue')
2525const { RealtimeClientConnection } = require ( './realtimeClientConnection' )
2626const { UpdateDirtyNoteJob } = require ( './realtimeUpdateDirtyNoteJob' )
2727const { CleanDanglingUserJob } = require ( './realtimeCleanDanglingUserJob' )
28+ const { SaveRevisionJob } = require ( './realtimeSaveRevisionJob' )
2829
2930// public
3031const realtime = {
@@ -38,6 +39,11 @@ const realtime = {
3839 maintenance : true
3940}
4041
42+ const disconnectProcessQueue = new ProcessQueue ( 2000 , 500 )
43+ const updateDirtyNoteJob = new UpdateDirtyNoteJob ( realtime )
44+ const cleanDanglingUserJob = new CleanDanglingUserJob ( realtime )
45+ const saveRevisionJob = new SaveRevisionJob ( realtime )
46+
4147function onAuthorizeSuccess ( data , accept ) {
4248 accept ( )
4349}
@@ -88,11 +94,10 @@ function emitCheck (note) {
8894var users = { }
8995var notes = { }
9096
91- const disconnectProcessQueue = new ProcessQueue ( 2000 , 500 )
9297disconnectProcessQueue . start ( )
93-
94- const updateDirtyNoteJob = new UpdateDirtyNoteJob ( realtime )
95- updateDirtyNoteJob . start ( realtime )
98+ updateDirtyNoteJob . start ( )
99+ cleanDanglingUserJob . start ( )
100+ saveRevisionJob . start ( )
96101
97102function disconnectSocketOnNote ( note ) {
98103 note . socks . forEach ( ( sock ) => {
@@ -157,28 +162,14 @@ function finishUpdateNote (note, _note, callback) {
157162 lastchangeAt : Date . now ( )
158163 }
159164 _note . update ( values ) . then ( function ( _note ) {
160- saverSleep = false
165+ saveRevisionJob . setSaverSleep ( false )
161166 return callback ( null , _note )
162167 } ) . catch ( function ( err ) {
163168 logger . error ( err )
164169 return callback ( err , null )
165170 } )
166171}
167172
168- const cleanDanglingUserJob = new CleanDanglingUserJob ( realtime )
169- cleanDanglingUserJob . start ( )
170-
171- var saverSleep = false
172- // save note revision in interval
173- setInterval ( function ( ) {
174- if ( saverSleep ) return
175- models . Revision . saveAllNotesRevision ( function ( err , notes ) {
176- if ( err ) return logger . error ( 'revision saver failed: ' + err )
177- if ( notes && notes . length <= 0 ) {
178- saverSleep = true
179- }
180- } )
181- } , 5 * 60 * 1000 ) // 5 mins
182173
183174function getStatus ( callback ) {
184175 models . Note . count ( ) . then ( function ( notecount ) {
@@ -806,3 +797,4 @@ exports.getUserPool = getUserPool
806797exports . disconnectProcessQueue = disconnectProcessQueue
807798exports . notes = notes
808799exports . users = users
800+ exports . saveRevisionJob = saveRevisionJob
0 commit comments