@@ -66,80 +66,6 @@ taskmanager.longtask = function(options) {
6666 var start = new Date ( ) . getTime ( ) ;
6767 var timeout ;
6868
69- var saveOpId = async function ( comment_id , retryCount ) {
70- common . db . admin ( ) . command ( { currentOp : 1 } , async function ( error , result ) {
71- if ( error ) {
72- log . d ( error ) ;
73- return ;
74- }
75- else {
76- if ( result && result . inprog ) {
77- for ( var i = 0 ; i < result . inprog . length ; i ++ ) {
78- let op = result . inprog [ i ] ;
79- if ( ! ( '$truncated' in op . command ) && ( i !== result . inprog . length - 1 ) ) {
80- continue ;
81- }
82- if ( ! ( '$truncated' in op . command ) && ( i === result . inprog . length - 1 ) ) {
83- if ( retryCount < 3 ) {
84- setTimeout ( ( ) => saveOpId ( comment_id , ( ++ retryCount ) ) , 500 ) ;
85- return ;
86- }
87- else {
88- log . d ( `operation not found for task:${ options . id } comment: ${ comment_id } ` ) ;
89- break ;
90- }
91- }
92-
93- let comment_position = op . command . $truncated . indexOf ( '$comment' ) ;
94- if ( comment_position === - 1 ) {
95- continue ;
96- }
97-
98- let substr = op . command . $truncated . substring ( comment_position , op . command . $truncated . length ) || "" ;
99- var comment_val = "" ;
100- substr = substr . match ( / " ( .* ?) " / ) ;
101- if ( substr && Array . isArray ( substr ) ) {
102- comment_val = substr [ 1 ] ;
103- }
104-
105- if ( comment_val === comment_id ) {
106- var task_id = options . id ;
107- var op_id = op . opid ;
108- await common . db . collection ( "long_tasks" ) . findOneAndUpdate ( { _id : common . db . ObjectID ( task_id ) } , { $set : { op_id : op_id } } ) ;
109- log . d ( `Operation found task: ${ task_id } op:${ op_id } comment: ${ comment_id } ` ) ;
110- break ;
111- }
112- else if ( ( comment_val !== comment_id ) && ( i === ( result . inprog . length - 1 ) ) ) {
113- if ( retryCount < 3 ) {
114- setTimeout ( ( ) => saveOpId ( comment_id , ( ++ retryCount ) ) , 500 ) ;
115- break ;
116- }
117- else {
118- log . d ( `operation not found for task:${ options . id } comment: ${ comment_id } ` ) ;
119- break ;
120- }
121- }
122- }
123- }
124- }
125- } ) ;
126- } ;
127-
128- if ( options . comment_id ) {
129- var retryCount = 0 ;
130- try {
131- saveOpId ( options . comment_id , retryCount ) ;
132- }
133- catch ( err ) {
134- if ( retryCount < 3 ) {
135- setTimeout ( ( ) => saveOpId ( options . comment_id , ++ retryCount ) , 500 ) ;
136- }
137- else {
138- console . log ( err ) ;
139- }
140- }
141- }
142-
14369 /** switching to long task */
14470 function switchToLongTask ( ) {
14571 timeout = null ;
@@ -1118,47 +1044,7 @@ taskmanager.rerunTask = function(options, callback) {
11181044} ;
11191045
11201046taskmanager . stopTask = function ( options , callback ) {
1121- options . db = options . db || common . db ;
1122-
1123- /**
1124- * Stop task
1125- * @param {object } op_id - operation id for mongo process
1126- * @param {object } options1.db - database connection
1127- * @param {string } options1.id - id of the task result
1128- * @param {object } reqData - request data
1129- * @param {funciton } callback1 - callback for the result
1130- */
1131- function stopTask ( op_id ) {
1132- common . db . admin ( ) . command ( { killOp : 1 , op : Number . parseInt ( op_id ) } , function ( error , result ) {
1133- if ( result . ok === 1 ) {
1134- callback ( null , "Success" ) ;
1135- }
1136- else {
1137- callback ( null , "Operation could not be stopped" ) ;
1138- }
1139- } ) ;
1140- }
1141-
1142- options . db . collection ( "long_tasks" ) . findOne ( { _id : options . id } , function ( err , res ) {
1143- if ( res ) {
1144- if ( res . creator ) {
1145- options . db . collection ( "members" ) . findOne ( { _id : common . db . ObjectID ( res . creator ) } , function ( err1 , member ) {
1146- if ( member ) {
1147- stopTask ( res . op_id ) ;
1148- }
1149- else {
1150- callback ( null , "No permission to stop this task" ) ;
1151- }
1152- } ) ;
1153- }
1154- else {
1155- stopTask ( res . op_id ) ;
1156- }
1157- }
1158- else {
1159- callback ( null , "Task does not exist" ) ;
1160- }
1161- } ) ;
1047+ callback ( null , "Operation could not be stopped" ) ;
11621048} ;
11631049
11641050/**
@@ -1201,4 +1087,4 @@ function getResult(callback, options) {
12011087 }
12021088 } ;
12031089}
1204- module . exports = taskmanager ;
1090+ module . exports = taskmanager ;
0 commit comments