1
1
import cn .hutool .core .util .RandomUtil ;
2
2
3
+ import java .util .HashMap ;
3
4
import java .util .Map ;
4
5
5
6
/**
@@ -26,7 +27,7 @@ public static void main(String[] args) {
26
27
//单轮轮询时请求异常(叮咚服务器高峰期限流策略)尝试次数
27
28
int loopTryCount = 10 ;
28
29
29
- //60次以后长时间等待10-15分钟左右
30
+ //60次以后长时间等待10分钟左右
30
31
int longWaitCount = 0 ;
31
32
32
33
boolean first = true ;
@@ -37,20 +38,21 @@ public static void main(String[] args) {
37
38
} else {
38
39
if (longWaitCount ++ > 60 ) {
39
40
longWaitCount = 0 ;
40
- System .out .println ("执行60次循环后,休息10-15分钟左右再继续 " );
41
- sleep (RandomUtil .randomInt (60000 , 80000 ));
41
+ System .out .println ("执行60次循环后,休息10分钟左右再继续 " );
42
+ sleep (RandomUtil .randomInt (50000 , 70000 ));
42
43
} else {
43
44
sleep (RandomUtil .randomInt (sleepMillisMin , sleepMillisMax ));
44
45
}
45
46
}
46
47
Api .allCheck ();
47
48
48
49
Map <String , Object > cartMap = null ;
49
- for (int i = 0 ; i < loopTryCount && cartMap == null ; i ++) {
50
+ for (int i = 0 ; i < loopTryCount && cartMap == null && ! Api . context . containsKey ( "noProduct" ) ; i ++) {
50
51
sleep (RandomUtil .randomInt (500 , 2000 ));
51
52
cartMap = Api .getCart (true );
52
53
}
53
54
if (cartMap == null ) {
55
+ Api .context .remove ("noProduct" );
54
56
continue ;
55
57
}
56
58
@@ -60,11 +62,12 @@ public static void main(String[] args) {
60
62
}
61
63
62
64
Map <String , Object > multiReserveTimeMap = null ;
63
- for (int i = 0 ; i < loopTryCount && multiReserveTimeMap == null ; i ++) {
65
+ for (int i = 0 ; i < loopTryCount && multiReserveTimeMap == null && ! Api . context . containsKey ( "noReserve" ) ; i ++) {
64
66
sleep (RandomUtil .randomInt (500 , 2000 ));
65
67
multiReserveTimeMap = Api .getMultiReserveTime (UserConfig .addressId , cartMap );
66
68
}
67
69
if (multiReserveTimeMap == null ) {
70
+ Api .context .remove ("noReserve" );
68
71
continue ;
69
72
}
70
73
0 commit comments