@@ -58,88 +58,14 @@ const log = require('./log.js')('core:taskmanager');
58
58
* }, outputData:function(err, data){
59
59
* common.returnOutput(params, data);
60
60
* }
61
- * }));
61
+ * }));
62
62
*/
63
63
taskmanager . longtask = function ( options ) {
64
64
options . db = options . db || common . db ;
65
65
var exceeds = false ;
66
66
var start = new Date ( ) . getTime ( ) ;
67
67
var timeout ;
68
68
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
-
143
69
/** switching to long task */
144
70
function switchToLongTask ( ) {
145
71
timeout = null ;
@@ -298,9 +224,6 @@ taskmanager.createTask = function(options, callback) {
298
224
update . subtask_key = options . subtask_key || "" ;
299
225
update . taskgroup = options . taskgroup || false ;
300
226
update . linked_to = options . linked_to ;
301
- if ( options . comment_id ) {
302
- update . comment_id = options . comment_id ;
303
- }
304
227
if ( options . subtask && options . subtask !== "" ) {
305
228
update . subtask = options . subtask ;
306
229
var updateSub = { $set : { } } ;
@@ -1117,50 +1040,6 @@ taskmanager.rerunTask = function(options, callback) {
1117
1040
} ) ;
1118
1041
} ;
1119
1042
1120
- taskmanager . 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
- } ) ;
1162
- } ;
1163
-
1164
1043
/**
1165
1044
* Create a callback for getting result, including checking gridfs
1166
1045
* @param {function } callback - callback for the result
0 commit comments