diff --git a/crates/router/src/scheduler/types/process_data.rs b/crates/router/src/scheduler/types/process_data.rs index 1849b9dfb3..a82eb02fb0 100644 --- a/crates/router/src/scheduler/types/process_data.rs +++ b/crates/router/src/scheduler/types/process_data.rs @@ -25,3 +25,17 @@ pub struct ConnectorPTMapping { pub custom_merchant_mapping: HashMap, pub max_retries_count: i32, } + +impl ConnectorPTMapping { + pub fn default() -> Self { + Self { + custom_merchant_mapping: HashMap::new(), + default_mapping: RetryMapping { + start_after: 60, + frequency: vec![300], + count: vec![5], + }, + max_retries_count: 5, + } + } +} diff --git a/crates/router/src/scheduler/workflows/payment_sync.rs b/crates/router/src/scheduler/workflows/payment_sync.rs index da705746d3..ae4ba85589 100644 --- a/crates/router/src/scheduler/workflows/payment_sync.rs +++ b/crates/router/src/scheduler/workflows/payment_sync.rs @@ -93,9 +93,14 @@ pub async fn get_sync_process_schedule_time( redis: sync::Arc, retry_count: i32, ) -> Result, errors::ProcessTrackerError> { - let mapping: process_data::ConnectorPTMapping = redis - .get_and_deserialize_key(connector, "ConnectorPTMapping") - .await?; + let redis_mapping: errors::CustomResult = + redis + .get_and_deserialize_key(&format!("pt_mapping_{}", connector), "ConnectorPTMapping") + .await; + let mapping = match redis_mapping { + Ok(x) => x, + Err(_) => process_data::ConnectorPTMapping::default(), + }; let time_delta = get_sync_schedule_time(mapping, merchant_id, retry_count + 1); Ok(pt_utils::get_time_from_delta(time_delta))