Skip to content

Commit c692f18

Browse files
fix: P4ADEV-4398 extract IO notification from sync WF and create new WF (#351)
1 parent f6aa6b5 commit c692f18

File tree

16 files changed

+493
-38
lines changed

16 files changed

+493
-38
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package it.gov.pagopa.pu.workflow.wf.debtposition.ionotification;
2+
3+
import it.gov.pagopa.payhub.activities.dto.debtposition.syncwfconfig.GenericWfExecutionConfig;
4+
import it.gov.pagopa.pu.debtposition.dto.generated.DebtPositionDTO;
5+
import it.gov.pagopa.pu.debtposition.dto.generated.SyncCompleteDTO;
6+
import it.gov.pagopa.pu.workflow.service.temporal.WorkflowClientService;
7+
import it.gov.pagopa.pu.workflow.service.temporal.WorkflowService;
8+
import it.gov.pagopa.pu.workflow.utilities.TaskQueueConstants;
9+
import it.gov.pagopa.pu.workflow.wf.debtposition.ionotification.wf_ionotification.SyncDpIONotificationWF;
10+
import lombok.extern.slf4j.Slf4j;
11+
import org.springframework.stereotype.Service;
12+
13+
import java.time.LocalDateTime;
14+
import java.util.Map;
15+
16+
import static it.gov.pagopa.pu.workflow.utilities.Utilities.generateWorkflowId;
17+
import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME;
18+
19+
@Slf4j
20+
@Service
21+
public class SyncDpIONotificationWFClient {
22+
23+
private final WorkflowService workflowService;
24+
private final WorkflowClientService workflowClientService;
25+
26+
public SyncDpIONotificationWFClient(WorkflowService workflowService, WorkflowClientService workflowClientService) {
27+
this.workflowService = workflowService;
28+
this.workflowClientService = workflowClientService;
29+
}
30+
31+
public void sendIoNotification(DebtPositionDTO debtPositionDTO, Map<String, SyncCompleteDTO> iudSyncCompleteDTOMap, GenericWfExecutionConfig.IONotificationBaseOpsMessages ioMessages) {
32+
log.info("Starting IO notification WF: {}", debtPositionDTO.getDebtPositionId());
33+
String taskQueue = TaskQueueConstants.TASK_QUEUE_DP_LOW_PRIORITY;
34+
String dateTime = LocalDateTime.now().format(ISO_LOCAL_DATE_TIME);
35+
String workflowId = generateWorkflowId(String.format("%s-%s", debtPositionDTO.getDebtPositionId(), dateTime), SyncDpIONotificationWF.class);
36+
37+
SyncDpIONotificationWF workflow = workflowService.buildWorkflowStubToStartNew(
38+
SyncDpIONotificationWF.class,
39+
taskQueue,
40+
workflowId);
41+
workflowClientService.start(workflow::sendIoNotification, debtPositionDTO, iudSyncCompleteDTOMap, ioMessages);
42+
}
43+
44+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package it.gov.pagopa.pu.workflow.wf.debtposition.ionotification.config;
2+
3+
import io.temporal.workflow.Workflow;
4+
import it.gov.pagopa.payhub.activities.activity.debtposition.ionotification.IONotificationDebtPositionActivity;
5+
import it.gov.pagopa.pu.workflow.config.temporal.BaseWfConfig;
6+
import it.gov.pagopa.pu.workflow.config.temporal.TemporalWFImplementationCustomizer;
7+
import it.gov.pagopa.pu.workflow.utilities.TaskQueueConstants;
8+
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.PublishPaymentEventActivity;
9+
import org.springframework.boot.context.properties.ConfigurationProperties;
10+
import org.springframework.context.annotation.Configuration;
11+
12+
@Configuration
13+
@ConfigurationProperties(prefix = "workflow.debt-position-io-notification")
14+
public class SyncDpIONotificationWFConfig extends BaseWfConfig {
15+
16+
public IONotificationDebtPositionActivity buildIoNotificationDebtPositionActivityStub() {
17+
return Workflow.newActivityStub(IONotificationDebtPositionActivity.class,
18+
TemporalWFImplementationCustomizer.baseWfConfig2ActivityOptions(this));
19+
}
20+
21+
public PublishPaymentEventActivity buildPublishPaymentEventActivityStub() {
22+
return Workflow.newActivityStub(PublishPaymentEventActivity.class,
23+
TemporalWFImplementationCustomizer.baseWfConfig2ActivityOptions(
24+
TaskQueueConstants.TASK_QUEUE_DP_RESERVED_SYNC_LOCAL, this));
25+
}
26+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package it.gov.pagopa.pu.workflow.wf.debtposition.ionotification.wf_ionotification;
2+
3+
import io.temporal.workflow.WorkflowInterface;
4+
import io.temporal.workflow.WorkflowMethod;
5+
import it.gov.pagopa.payhub.activities.dto.debtposition.syncwfconfig.GenericWfExecutionConfig;
6+
import it.gov.pagopa.pu.debtposition.dto.generated.DebtPositionDTO;
7+
import it.gov.pagopa.pu.debtposition.dto.generated.SyncCompleteDTO;
8+
9+
import java.util.Map;
10+
11+
/**
12+
* Workflow to handle IO notification of a new debt position synchronized
13+
* @see <a href=https://pagopa.atlassian.net/wiki/spaces/SPAC/pages/1485308613/Sincronizzazione+Posizione+Debitoria#3.2.-Pagamenti-pagoPA>Confluence page</a>
14+
* */
15+
16+
@WorkflowInterface
17+
public interface SyncDpIONotificationWF {
18+
19+
@WorkflowMethod
20+
void sendIoNotification(DebtPositionDTO debtPositionDTO, Map<String, SyncCompleteDTO> iudSyncCompleteDTOMap, GenericWfExecutionConfig.IONotificationBaseOpsMessages ioMessages);
21+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package it.gov.pagopa.pu.workflow.wf.debtposition.ionotification.wf_ionotification;
2+
3+
import io.temporal.spring.boot.WorkflowImpl;
4+
import it.gov.pagopa.payhub.activities.activity.debtposition.ionotification.IONotificationDebtPositionActivity;
5+
import it.gov.pagopa.payhub.activities.dto.debtposition.DebtPositionIoNotificationDTO;
6+
import it.gov.pagopa.payhub.activities.dto.debtposition.syncwfconfig.GenericWfExecutionConfig;
7+
import it.gov.pagopa.pu.debtposition.dto.generated.DebtPositionDTO;
8+
import it.gov.pagopa.pu.debtposition.dto.generated.SyncCompleteDTO;
9+
import it.gov.pagopa.pu.workflow.dto.PaymentEventRequestDTO;
10+
import it.gov.pagopa.pu.workflow.dto.generated.PaymentEventType;
11+
import it.gov.pagopa.pu.workflow.utilities.TaskQueueConstants;
12+
import it.gov.pagopa.pu.workflow.wf.debtposition.ionotification.config.SyncDpIONotificationWFConfig;
13+
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.PublishPaymentEventActivity;
14+
import lombok.extern.slf4j.Slf4j;
15+
import org.springframework.beans.BeansException;
16+
import org.springframework.context.ApplicationContext;
17+
import org.springframework.context.ApplicationContextAware;
18+
19+
import java.util.Map;
20+
21+
@Slf4j
22+
@WorkflowImpl(taskQueues = TaskQueueConstants.TASK_QUEUE_DP_LOW_PRIORITY)
23+
public class SyncDpIONotificationWFImpl implements SyncDpIONotificationWF, ApplicationContextAware {
24+
25+
private IONotificationDebtPositionActivity ioNotificationDebtPositionActivity;
26+
private PublishPaymentEventActivity publishPaymentEventActivity;
27+
28+
@Override
29+
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
30+
SyncDpIONotificationWFConfig wfConfig = applicationContext.getBean(SyncDpIONotificationWFConfig.class);
31+
ioNotificationDebtPositionActivity = wfConfig.buildIoNotificationDebtPositionActivityStub();
32+
publishPaymentEventActivity = wfConfig.buildPublishPaymentEventActivityStub();
33+
}
34+
35+
@Override
36+
public void sendIoNotification(DebtPositionDTO debtPositionDTO, Map<String, SyncCompleteDTO> iudSyncCompleteDTOMap, GenericWfExecutionConfig.IONotificationBaseOpsMessages ioMessages) {
37+
log.info("Calling notifyIO activity on debtPosition {} (organizationId {}, debtPositionTypeOrgId {})",
38+
debtPositionDTO.getDebtPositionId(), debtPositionDTO.getOrganizationId(), debtPositionDTO.getDebtPositionTypeOrgId());
39+
DebtPositionIoNotificationDTO ioNotifications = ioNotificationDebtPositionActivity.sendIoNotification(debtPositionDTO, iudSyncCompleteDTOMap, ioMessages);
40+
if (ioNotifications != null) {
41+
publishPaymentEventActivity.publishDebtPositionIoNotificationEvent(ioNotifications, new PaymentEventRequestDTO(PaymentEventType.IO_NOTIFIED, null));
42+
}
43+
}
44+
}
45+

src/main/java/it/gov/pagopa/pu/workflow/wf/debtposition/sync/BaseDPSynchronizeWf.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import com.nimbusds.jose.util.Pair;
44
import it.gov.pagopa.payhub.activities.activity.debtposition.synchronize.FinalizeDebtPositionSyncStatusActivity;
5-
import it.gov.pagopa.payhub.activities.activity.debtposition.ionotification.IONotificationDebtPositionActivity;
6-
import it.gov.pagopa.payhub.activities.dto.debtposition.DebtPositionIoNotificationDTO;
75
import it.gov.pagopa.payhub.activities.dto.debtposition.syncwfconfig.GenericWfExecutionConfig;
86
import it.gov.pagopa.payhub.activities.util.DebtPositionUtilities;
97
import it.gov.pagopa.pu.debtposition.dto.generated.*;
@@ -12,6 +10,7 @@
1210
import it.gov.pagopa.pu.workflow.dto.generated.PaymentEventType;
1311
import it.gov.pagopa.pu.workflow.utilities.Utilities;
1412
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.CancelCheckDpExpirationScheduleActivity;
13+
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.StartIONotificationWFActivity;
1514
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.PublishPaymentEventActivity;
1615
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.ScheduleCheckDpExpirationActivity;
1716
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.config.SynchronizeDebtPositionWfConfig;
@@ -35,9 +34,9 @@ public abstract class BaseDPSynchronizeWf implements ApplicationContextAware {
3534

3635
protected FinalizeDebtPositionSyncStatusActivity finalizeDebtPositionSyncStatusActivity;
3736
protected PublishPaymentEventActivity publishPaymentEventActivity;
38-
protected IONotificationDebtPositionActivity ioNotificationDebtPositionActivity;
3937
protected CancelCheckDpExpirationScheduleActivity cancelCheckDpExpirationScheduleActivity;
4038
protected ScheduleCheckDpExpirationActivity scheduleCheckDpExpirationActivity;
39+
protected StartIONotificationWFActivity startIONotificationWFActivity;
4140

4241
/**
4342
* Temporal workflow will not allow to use injection in order to avoid <a href="https://docs.temporal.io/workflows#non-deterministic-change">non-deterministic changes</a> due to dynamic reconfiguration.<BR />
@@ -50,9 +49,9 @@ public final void setApplicationContext(ApplicationContext applicationContext) t
5049
SynchronizeDebtPositionWfConfig wfConfig = applicationContext.getBean(SynchronizeDebtPositionWfConfig.class);
5150
finalizeDebtPositionSyncStatusActivity = wfConfig.buildFinalizeDebtPositionSyncStatusActivityStub();
5251
publishPaymentEventActivity = wfConfig.buildPublishPaymentEventActivityStub();
53-
ioNotificationDebtPositionActivity = wfConfig.buildIONotificationDebtPositionActivityStub();
5452
cancelCheckDpExpirationScheduleActivity = wfConfig.buildCancelCheckDpExpirationScheduleActivityStub();
5553
scheduleCheckDpExpirationActivity = wfConfig.buildScheduleCheckDpExpirationActivityStub();
54+
startIONotificationWFActivity = wfConfig.buildInvokeIONotificationActivityStub();
5655

5756
buildActivities(wfConfig);
5857
}
@@ -74,7 +73,7 @@ protected SyncStatusUpdateRequestDTO synchronizeDebtPosition(DebtPositionDTO req
7473
SyncStatusUpdateRequestDTO finalizeStatusRequest = processToSyncInstallments(requestedDebtPosition);
7574
DebtPositionDTO finalizedDebtPositionDTO = finalizeSyncStatus(requestedDebtPosition, finalizeStatusRequest);
7675
publishEvent(paymentEventRequest, finalizedDebtPositionDTO);
77-
callIONotificationActivity(requestedDebtPosition, finalizeStatusRequest.getIupd2finalize(), wfExecutionConfig!=null? wfExecutionConfig.getIoMessages() : null);
76+
startIONotificationWF(requestedDebtPosition, finalizeStatusRequest.getIupd2finalize(), wfExecutionConfig!=null? wfExecutionConfig.getIoMessages() : null);
7877
scheduleExpirationWF(finalizedDebtPositionDTO, debtPositionId);
7978

8079
log.info("DebtPosition synchronized {}", debtPositionId);
@@ -140,16 +139,11 @@ protected void publishEvent(PaymentEventRequestDTO paymentEventRequest, DebtPosi
140139
}
141140
}
142141

143-
protected void callIONotificationActivity(DebtPositionDTO requestedDebtPosition, Map<String, SyncCompleteDTO> iudSyncCompleteDTOMap, GenericWfExecutionConfig.IONotificationBaseOpsMessages ioMessages) {
144-
Long debtPositionId = requestedDebtPosition.getDebtPositionId();
142+
protected void startIONotificationWF(DebtPositionDTO requestedDebtPosition, Map<String, SyncCompleteDTO> iudSyncCompleteDTOMap, GenericWfExecutionConfig.IONotificationBaseOpsMessages ioMessages) {
145143
if (!CollectionUtils.isEmpty(iudSyncCompleteDTOMap)) {
146-
log.info("Calling notifyIO activity on debtPosition {} (organizationId {}, debtPositionTypeOrgId {})", debtPositionId, requestedDebtPosition.getOrganizationId(), requestedDebtPosition.getDebtPositionTypeOrgId());
147-
DebtPositionIoNotificationDTO ioNotifications = ioNotificationDebtPositionActivity.sendIoNotification(requestedDebtPosition, iudSyncCompleteDTOMap, ioMessages);
148-
if(ioNotifications != null){
149-
publishPaymentEventActivity.publishDebtPositionIoNotificationEvent(ioNotifications, new PaymentEventRequestDTO(PaymentEventType.IO_NOTIFIED, null));
150-
}
144+
startIONotificationWFActivity.startIONotificationWF(requestedDebtPosition, iudSyncCompleteDTOMap, ioMessages);
151145
} else {
152-
log.info("Nothing to notifyIO on debtPosition {}", debtPositionId);
146+
log.info("Nothing to notifyIO on debtPosition {}", requestedDebtPosition.getDebtPositionId());
153147
}
154148
}
155149

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity;
2+
3+
import io.temporal.activity.ActivityInterface;
4+
import io.temporal.activity.ActivityMethod;
5+
import it.gov.pagopa.payhub.activities.dto.debtposition.syncwfconfig.GenericWfExecutionConfig;
6+
import it.gov.pagopa.pu.debtposition.dto.generated.DebtPositionDTO;
7+
import it.gov.pagopa.pu.debtposition.dto.generated.SyncCompleteDTO;
8+
9+
import java.util.Map;
10+
11+
/** It will invoke IO notification */
12+
@ActivityInterface
13+
public interface StartIONotificationWFActivity {
14+
15+
@ActivityMethod
16+
void startIONotificationWF(DebtPositionDTO debtPositionDTO, Map<String, SyncCompleteDTO> iudSyncCompleteDTOMap, GenericWfExecutionConfig.IONotificationBaseOpsMessages ioMessages);
17+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity;
2+
3+
import io.temporal.spring.boot.ActivityImpl;
4+
import it.gov.pagopa.payhub.activities.dto.debtposition.syncwfconfig.GenericWfExecutionConfig;
5+
import it.gov.pagopa.pu.debtposition.dto.generated.DebtPositionDTO;
6+
import it.gov.pagopa.pu.debtposition.dto.generated.SyncCompleteDTO;
7+
import it.gov.pagopa.pu.workflow.utilities.TaskQueueConstants;
8+
import it.gov.pagopa.pu.workflow.wf.debtposition.ionotification.SyncDpIONotificationWFClient;
9+
import lombok.extern.slf4j.Slf4j;
10+
import org.springframework.stereotype.Service;
11+
12+
import java.util.Map;
13+
14+
@Service
15+
@Slf4j
16+
@ActivityImpl(taskQueues = TaskQueueConstants.TASK_QUEUE_DP_RESERVED_SYNC_LOCAL)
17+
public class StartIONotificationWFActivityImpl implements StartIONotificationWFActivity {
18+
19+
private final SyncDpIONotificationWFClient syncDpIONotificationWFClient;
20+
21+
public StartIONotificationWFActivityImpl(SyncDpIONotificationWFClient syncDpIONotificationWFClient) {
22+
this.syncDpIONotificationWFClient = syncDpIONotificationWFClient;
23+
}
24+
25+
@Override
26+
public void startIONotificationWF(DebtPositionDTO debtPositionDTO, Map<String, SyncCompleteDTO> iudSyncCompleteDTOMap, GenericWfExecutionConfig.IONotificationBaseOpsMessages ioMessages) {
27+
log.info("Starting IO notification process on debtPosition: {}", debtPositionDTO.getDebtPositionId());
28+
syncDpIONotificationWFClient.sendIoNotification(debtPositionDTO, iudSyncCompleteDTOMap, ioMessages);
29+
}
30+
}

src/main/java/it/gov/pagopa/pu/workflow/wf/debtposition/sync/config/SynchronizeDebtPositionWfConfig.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
import it.gov.pagopa.payhub.activities.activity.debtposition.synchronize.aca.SynchronizeInstallmentAcaActivity;
66
import it.gov.pagopa.payhub.activities.activity.debtposition.synchronize.gpd.SynchronizeInstallmentGpdActivity;
77
import it.gov.pagopa.payhub.activities.activity.debtposition.synchronize.gpdpreload.SynchronizeInstallmentGpdPreLoadActivity;
8-
import it.gov.pagopa.payhub.activities.activity.debtposition.ionotification.IONotificationDebtPositionActivity;
98
import it.gov.pagopa.pu.workflow.config.temporal.BaseWfConfig;
109
import it.gov.pagopa.pu.workflow.config.temporal.TemporalWFImplementationCustomizer;
1110
import it.gov.pagopa.pu.workflow.utilities.TaskQueueConstants;
1211
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.CancelCheckDpExpirationScheduleActivity;
12+
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.StartIONotificationWFActivity;
1313
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.PublishPaymentEventActivity;
1414
import it.gov.pagopa.pu.workflow.wf.debtposition.sync.activity.ScheduleCheckDpExpirationActivity;
1515
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -29,10 +29,6 @@ public PublishPaymentEventActivity buildPublishPaymentEventActivityStub() {
2929
TaskQueueConstants.TASK_QUEUE_DP_RESERVED_SYNC_LOCAL, this));
3030
}
3131

32-
public IONotificationDebtPositionActivity buildIONotificationDebtPositionActivityStub() {
33-
return Workflow.newActivityStub(IONotificationDebtPositionActivity.class, TemporalWFImplementationCustomizer.baseWfConfig2ActivityOptions(this));
34-
}
35-
3632
public CancelCheckDpExpirationScheduleActivity buildCancelCheckDpExpirationScheduleActivityStub() {
3733
return Workflow.newActivityStub(CancelCheckDpExpirationScheduleActivity.class,
3834
TemporalWFImplementationCustomizer.baseWfConfig2ActivityOptions(
@@ -56,4 +52,10 @@ public SynchronizeInstallmentGpdActivity buildSynchronizeInstallmentGpdActivity(
5652
public SynchronizeInstallmentGpdPreLoadActivity buildSynchronizeInstallmentGpdPreLoadActivity() {
5753
return Workflow.newActivityStub(SynchronizeInstallmentGpdPreLoadActivity.class, TemporalWFImplementationCustomizer.baseWfConfig2ActivityOptions(this));
5854
}
55+
56+
public StartIONotificationWFActivity buildInvokeIONotificationActivityStub() {
57+
return Workflow.newActivityStub(StartIONotificationWFActivity.class, TemporalWFImplementationCustomizer.baseWfConfig2ActivityOptions(
58+
TaskQueueConstants.TASK_QUEUE_DP_RESERVED_SYNC_LOCAL,
59+
this));
60+
}
5961
}

src/main/java/it/gov/pagopa/pu/workflow/wf/debtposition/sync/wf_nopagopa/SynchronizeNoPagoPAWFImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ protected SyncCompleteDTO synchronizeInstallment(DebtPositionDTO debtPosition, I
2929
}
3030

3131
@Override
32-
protected void callIONotificationActivity(DebtPositionDTO requestedDebtPosition, Map<String, SyncCompleteDTO> iupdSyncStatusUpdateDTOMap, GenericWfExecutionConfig.IONotificationBaseOpsMessages ioMessages) {
32+
protected void startIONotificationWF(DebtPositionDTO requestedDebtPosition, Map<String, SyncCompleteDTO> iupdSyncStatusUpdateDTOMap, GenericWfExecutionConfig.IONotificationBaseOpsMessages ioMessages) {
3333
// Do Nothing
3434
}
3535
}

src/main/resources/application.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,13 @@ workflow:
360360
retry-backoff-coefficient: "\${DEBT_POSITION_ACTIVITY_CONFIG_RETRY_BACKOFF_COEFFICIENT:\${workflow.default.retryBackoffCoefficient}}"
361361
retry-maximum-attempts: "\${DEBT_POSITION_ACTIVITY_CONFIG_RETRY_MAXIMUM_ATTEMPTS:\${workflow.default.retryMaximumAttempts}}"
362362

363+
# debt position io notification
364+
debt-position-io-notification:
365+
start-to-close-timeout-in-seconds: "\${DEBT_POSITION_ACTIVITY_CONFIG_START_TO_CLOSE_TIMEOUT_IN_SECONDS:\${workflow.default.startToCloseTimeoutInSeconds}}"
366+
retry-initial-interval-in-millis: "\${DEBT_POSITION_ACTIVITY_CONFIG_RETRY_INITIAL_INTERVAL_IN_MILLIS:\${workflow.default.retryInitialIntervalInMillis}}"
367+
retry-backoff-coefficient: "\${DEBT_POSITION_ACTIVITY_CONFIG_RETRY_BACKOFF_COEFFICIENT:\${workflow.default.retryBackoffCoefficient}}"
368+
retry-maximum-attempts: "\${DEBT_POSITION_ACTIVITY_CONFIG_RETRY_MAXIMUM_ATTEMPTS:\${workflow.default.retryMaximumAttempts}}"
369+
363370
# debt position sync
364371
debt-position-synchronize:
365372
start-to-close-timeout-in-seconds: "\${DEBT_POSITION_ACTIVITY_CONFIG_START_TO_CLOSE_TIMEOUT_IN_SECONDS:\${workflow.default.startToCloseTimeoutInSeconds}}"

0 commit comments

Comments
 (0)