@@ -25,7 +25,7 @@ module.exports = class LightningCloudProvider extends AbstractCloudProvider{
2525 constructor ( ) {
2626 super ( ) ;
2727
28- this . validateCache = new ValueCache ( { expires : 5 * 60 * 1000 } ) ;
28+ this . validateCache = new ValueCache ( { expires : 15 * 60 * 1000 } ) ;
2929
3030 this . urlBase = "https://webodm.net/r" ;
3131 this . timeout = 15000 ;
@@ -40,23 +40,28 @@ module.exports = class LightningCloudProvider extends AbstractCloudProvider{
4040 const cached = this . validateCache . get ( token ) ;
4141 if ( cached !== undefined ) return cached ;
4242
43- try {
44- let response = await axios . post ( this . urlFor ( '/tokens/validate' ) , { token } , { timeout : this . timeout } ) ;
45- if ( response . status === 200 ) {
46- let result = this . validateCache . set ( token , response . data ) ;
47- return result ;
48- } else {
49- logger . warn ( `Cannot validate token ${ token } , returned status ${ response . status } ` ) ;
50- return {
51- valid : false
52- } ;
43+ const MAX_RETRIES = 10 ;
44+ for ( let i = 1 ; i <= MAX_RETRIES ; i ++ ) {
45+ try {
46+ let response = await axios . post ( this . urlFor ( '/tokens/validate' ) , { token } , { timeout : this . timeout } ) ;
47+ if ( response . status === 200 ) {
48+ let result = this . validateCache . set ( token , response . data ) ;
49+ return result ;
50+ } else {
51+ logger . warn ( `Cannot validate token ${ token } , returned status ${ response . status } , retrying... (${ i } )` ) ;
52+ }
53+ } catch ( e ) {
54+ logger . warn ( `Cannot validate token ${ token } : ${ e . message } retrying... ${ i } ` ) ;
5355 }
54- } catch ( e ) {
55- logger . warn ( `Cannot validate token ${ token } : ${ e . message } ` ) ;
56- return {
57- valid : false
58- } ;
56+
57+ await utils . sleep ( 2000 * i ) ;
5958 }
59+
60+ logger . warn ( `Cannot validate token ${ token } : gave up` ) ;
61+
62+ return {
63+ valid : false
64+ } ;
6065 }
6166
6267 async approveNewTask ( token , imagesCount ) {
0 commit comments