@@ -39,6 +39,7 @@ public class YqlWriter implements AutoCloseable {
3939 private final YdbService ydb ;
4040 private final String queryYql ;
4141 private final int timeoutSeconds ;
42+ private final int errorThreshold ;
4243
4344 private final List <Writer > writers ;
4445
@@ -52,6 +53,7 @@ private YqlWriter(YdbService ydb, CdcConfig config, String prmName, StructType t
5253 this .ydb = ydb ;
5354 this .queryYql = config .getQuery ();
5455 this .timeoutSeconds = config .getTimeoutSeconds ();
56+ this .errorThreshold = config .getErrorThreshold ();
5557
5658 this .lastWrited = null ;
5759 this .lastReaded = null ;
@@ -152,6 +154,12 @@ public void run() {
152154 Random rnd = new Random ();
153155
154156 while (!Thread .interrupted ()) {
157+ Message msg = queue .poll ();
158+ if (msg == null ) {
159+ Thread .sleep (1000 );
160+ continue ;
161+ }
162+
155163 long now = System .currentTimeMillis ();
156164 long printedAt = lastPrinted .get ();
157165 if ((now - printedAt > 1000 ) && lastPrinted .compareAndSet (printedAt , now )) {
@@ -161,12 +169,6 @@ public void run() {
161169 logger .debug ("writed {} rows, {} rps" , written , String .format ("%.2f" , avg ));
162170 }
163171
164- Message msg = queue .poll ();
165- if (msg == null ) {
166- Thread .sleep (1000 );
167- continue ;
168- }
169-
170172 DeferredCommitter committer = DeferredCommitter .newInstance ();
171173 Instant last = msg .getCreatedAt ();
172174
@@ -198,8 +200,14 @@ public void run() {
198200 retry ++;
199201 long delay = 25 << Math .min (retry , 8 );
200202 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+
203211 Thread .sleep (delay );
204212
205213 now = System .currentTimeMillis ();
0 commit comments