@@ -39,6 +39,7 @@ public class YqlWriter implements AutoCloseable {
39
39
private final YdbService ydb ;
40
40
private final String queryYql ;
41
41
private final int timeoutSeconds ;
42
+ private final int errorThreshold ;
42
43
43
44
private final List <Writer > writers ;
44
45
@@ -52,6 +53,7 @@ private YqlWriter(YdbService ydb, CdcConfig config, String prmName, StructType t
52
53
this .ydb = ydb ;
53
54
this .queryYql = config .getQuery ();
54
55
this .timeoutSeconds = config .getTimeoutSeconds ();
56
+ this .errorThreshold = config .getErrorThreshold ();
55
57
56
58
this .lastWrited = null ;
57
59
this .lastReaded = null ;
@@ -152,6 +154,12 @@ public void run() {
152
154
Random rnd = new Random ();
153
155
154
156
while (!Thread .interrupted ()) {
157
+ Message msg = queue .poll ();
158
+ if (msg == null ) {
159
+ Thread .sleep (1000 );
160
+ continue ;
161
+ }
162
+
155
163
long now = System .currentTimeMillis ();
156
164
long printedAt = lastPrinted .get ();
157
165
if ((now - printedAt > 1000 ) && lastPrinted .compareAndSet (printedAt , now )) {
@@ -161,12 +169,6 @@ public void run() {
161
169
logger .debug ("writed {} rows, {} rps" , written , String .format ("%.2f" , avg ));
162
170
}
163
171
164
- Message msg = queue .poll ();
165
- if (msg == null ) {
166
- Thread .sleep (1000 );
167
- continue ;
168
- }
169
-
170
172
DeferredCommitter committer = DeferredCommitter .newInstance ();
171
173
Instant last = msg .getCreatedAt ();
172
174
@@ -198,8 +200,14 @@ public void run() {
198
200
retry ++;
199
201
long delay = 25 << Math .min (retry , 8 );
200
202
delay = delay + rnd .nextLong (delay );
201
- logger .warn ("got error {} after {} ms" , lastStatus , ms );
202
- logger .warn ("retry #{} in {} ms" , retry , delay );
203
+ if (retry > errorThreshold ) {
204
+ logger .warn ("got error {} after {} ms" , lastStatus , ms );
205
+ logger .warn ("retry #{} in {} ms" , retry , delay );
206
+ } else {
207
+ logger .trace ("got error {} after {} ms" , lastStatus , ms );
208
+ logger .trace ("retry #{} in {} ms" , retry , delay );
209
+ }
210
+
203
211
Thread .sleep (delay );
204
212
205
213
now = System .currentTimeMillis ();
0 commit comments