@@ -190,27 +190,44 @@ bot.action(
190190
191191bot . launch ( ) ;
192192
193- const chid = fork ( `utils/fetch.js` ) ;
194- chid . on ( 'message' , function ( message ) {
195- if ( typeof message === 'string' ) logger . info ( message ) ;
196- else if ( message . success ) {
197- const feed = message . eachFeed ;
198- const { sendItems } = message ;
199- if ( sendItems . length > 0 && ! not_send ) send ( bot , sendItems , feed ) ;
200- } else {
201- if ( message . message === 'MAX_TIME' ) {
202- const { feed, err } = message ;
203- send (
204- bot ,
205- `${ feed . feed_title } : <a href="${ feed . url } ">${ feed . url } </a> ${
206- i18n [ 'ERROR_MANY_TIME' ]
207- } ${ err }
193+ function startFetchProcess ( restartTime ) {
194+ if ( restartTime > 3 ) {
195+ logger . error ( 'fetch process exit to much' ) ;
196+ process . exit ( 1 ) ;
197+ }
198+ const chid = fork ( `utils/fetch.js` ) ;
199+ chid . on ( 'message' , function ( message ) {
200+ if ( typeof message === 'string' ) logger . info ( message ) ;
201+ else if ( message . success ) {
202+ const feed = message . eachFeed ;
203+ const { sendItems } = message ;
204+ if ( sendItems . length > 0 && ! not_send ) send ( bot , sendItems , feed ) ;
205+ } else {
206+ if ( message . message === 'MAX_TIME' ) {
207+ const { feed, err } = message ;
208+ send (
209+ bot ,
210+ `${ feed . feed_title } : <a href="${ feed . url } ">${
211+ feed . url
212+ } </a> ${ i18n [ 'ERROR_MANY_TIME' ] } ${ err }
208213 ` ,
209- feed
210- ) ;
214+ feed
215+ ) ;
216+ }
211217 }
212- }
213- } ) ;
218+ } ) ;
219+
220+ chid . on ( 'exit' , function ( code , signal ) {
221+ logger . error ( `child process exit` ) ;
222+ logger . error ( {
223+ code,
224+ signal
225+ } ) ;
226+ startFetchProcess ( restartTime + 1 ) ;
227+ } ) ;
228+ }
229+
230+ startFetchProcess ( 0 ) ;
214231
215232logger . info ( `Database file is in ${ db_path } ` ) ;
216233logger . info ( `Using language is ${ lang } ` ) ;
0 commit comments