20
20
import jakarta .persistence .PersistenceException ;
21
21
import jakarta .transaction .Transactional ;
22
22
23
+ import no .nav .vedtak .felles .prosesstask .impl .util .OtelUtil ;
24
+
23
25
import org .hibernate .Session ;
24
26
import org .hibernate .exception .JDBCConnectionException ;
25
27
import org .hibernate .jdbc .Work ;
@@ -91,10 +93,12 @@ protected void runTaskAndUpdateStatus(Connection conn, ProsessTaskEntitet pte, P
91
93
return ;
92
94
}
93
95
94
- pickAndRun .dispatchWork (pte );
96
+ OtelUtil .wrapper ().span ("TASK " + taskType .value (), OtelUtil .taskAttributter (pte .tilProsessTask ()), () -> {
97
+ pickAndRun .dispatchWork (pte );
98
+ // flush for å fange andre constraint feil etc før vi markerer ferdig
99
+ getEntityManager ().flush ();
100
+ });
95
101
96
- // flush for å fange andre constraint feil etc før vi markerer ferdig
97
- getEntityManager ().flush ();
98
102
99
103
if (ProsessTaskStatus .KLAR == pte .getStatus ()) {
100
104
var sluttStatus = pickAndRun .markerTaskFerdig (pte );
@@ -203,7 +207,7 @@ void handleTaskFeil(ProsessTaskEntitet pte, Exception e) {
203
207
feilOgStatushåndterer .handleTaskFeil (retryPolicy , pte , e );
204
208
}
205
209
206
- void handleFatalTaskFeil (ProsessTaskEntitet pte ,Feil feil , Exception e ) {
210
+ void handleFatalTaskFeil (ProsessTaskEntitet pte , Feil feil , Exception e ) {
207
211
feilOgStatushåndterer .handleFatalTaskFeil (pte , feil , e );
208
212
}
209
213
@@ -219,7 +223,7 @@ ProsessTaskStatus markerTaskFerdig(ProsessTaskEntitet pte) {
219
223
// frigir veto etter at event handlere er fyrt
220
224
vetoHåndterer .frigiVeto (pte );
221
225
222
- ProsessTaskStatus nyStatus = ProsessTaskStatus .KJOERT ;
226
+ var nyStatus = ProsessTaskStatus .KJOERT ;
223
227
taskManagerRepository .oppdaterStatus (pte .getId (), nyStatus );
224
228
225
229
pte = refreshProsessTask (pte .getId ());
@@ -230,7 +234,7 @@ ProsessTaskStatus markerTaskFerdig(ProsessTaskEntitet pte) {
230
234
// markerer task som påbegynt (merk committer ikke før til slutt).
231
235
void markerTaskUnderArbeid (ProsessTaskEntitet pte ) {
232
236
// mark row being processed with timestamp and server process id
233
- LocalDateTime now = LocalDateTime .now ();
237
+ var now = LocalDateTime .now ();
234
238
pte .setSisteKjøring (now );
235
239
pte .setSisteKjøringServer (getJvmUniqueProcessName ());
236
240
getEntityManager ().persist (pte );
@@ -240,15 +244,15 @@ void markerTaskUnderArbeid(ProsessTaskEntitet pte) {
240
244
// regner ut neste kjøretid for tasks som kan repeteres (har CronExpression)
241
245
void planleggNesteKjøring (ProsessTaskEntitet pte ) throws SQLException {
242
246
if (cronExpression != null ) {
243
- String gruppe = ProsessTaskRepository .getUniktProsessTaskGruppeNavn (taskManagerRepository .getEntityManager ());
244
- LocalDateTime now = LocalDateTime .now ();
245
- LocalDateTime nesteKjøring = cronExpression .nextLocalDateTimeAfter (now );
247
+ var gruppe = ProsessTaskRepository .getUniktProsessTaskGruppeNavn (taskManagerRepository .getEntityManager ());
248
+ var now = LocalDateTime .now ();
249
+ var nesteKjøring = cronExpression .nextLocalDateTimeAfter (now );
246
250
var data = ProsessTaskDataBuilder .forTaskType (pte .getTaskType ())
247
251
.medNesteKjøringEtter (nesteKjøring )
248
252
.medProperties (pte .getProperties ())
249
253
.medGruppe (gruppe )
250
254
.medSekvens (pte .getSekvens ());
251
- ProsessTaskEntitet nyPte = new ProsessTaskEntitet ().kopierFraNy (data .build ());
255
+ var nyPte = new ProsessTaskEntitet ().kopierFraNy (data .build ());
252
256
253
257
getEntityManager ().persist (nyPte );
254
258
getEntityManager ().flush ();
@@ -266,7 +270,7 @@ void markerTaskUnderArbeid(ProsessTaskEntitet pte) {
266
270
}
267
271
268
272
void dispatchWork (ProsessTaskEntitet pte ) throws Exception {
269
- ProsessTaskData taskData = pte .tilProsessTask ();
273
+ var taskData = pte .tilProsessTask ();
270
274
taskInfo .getTaskDispatcher ().dispatch (taskData );
271
275
}
272
276
@@ -277,7 +281,7 @@ private EntityManager getEntityManager() {
277
281
@ SuppressWarnings ("rawtypes" )
278
282
void runTask () {
279
283
280
- final PickAndRunTask pickAndRun = this ;
284
+ final var pickAndRun = this ;
281
285
/*
282
286
* Bruker SQL+JDBC for å kunne benytte savepoints og inkrementell oppdatering i
283
287
* transaksjonen.
@@ -286,7 +290,7 @@ class PullSingleTask implements Work {
286
290
@ Override
287
291
public void execute (Connection conn ) throws SQLException {
288
292
try {
289
- Optional < ProsessTaskEntitet > pte = taskManagerRepository .finnOgLås (taskInfo );
293
+ var pte = taskManagerRepository .finnOgLås (taskInfo );
290
294
if (pte .isPresent ()) {
291
295
runTaskAndUpdateStatus (conn , pte .get (), pickAndRun );
292
296
}
@@ -304,15 +308,15 @@ public void execute(Connection conn) throws SQLException {
304
308
305
309
}
306
310
307
- PullSingleTask pullSingleTask = new PullSingleTask ();
308
- EntityManager em = getEntityManager ();
311
+ var pullSingleTask = new PullSingleTask ();
312
+ var em = getEntityManager ();
309
313
// workaround for hibernate issue HHH-11020
310
314
if (em instanceof TargetInstanceProxy tip ) {
311
315
em = (EntityManager ) tip .weld_getTargetInstance ();
312
316
}
313
317
314
318
@ SuppressWarnings ("resource" ) // skal ikke lukke session her
315
- Session session = em .unwrap (Session .class );
319
+ var session = em .unwrap (Session .class );
316
320
317
321
session .doWork (pullSingleTask );
318
322
0 commit comments