-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(payouts): Implement Smart Retries for Payout #3580
Conversation
…ions fix(payouts): db down queries
…l and update flows
refactor: merge main
crates/router/Cargo.toml
Outdated
@@ -31,6 +31,7 @@ connector_choice_mca_id = ["api_models/connector_choice_mca_id", "euclid/connect | |||
external_access_dc = ["dummy_connector"] | |||
detailed_errors = ["api_models/detailed_errors", "error-stack/serde"] | |||
payouts = [] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
payouts = [] | |
payouts = ["payout_retry"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since, payout_retry is dependent on payout, payout is put under payout_retry
… listing based on flow (payments or payouts)
|
||
if retries.is_none() || retries == Some(0) { | ||
metrics::AUTO_PAYOUT_RETRY_EXHAUSTED_COUNT.add(&metrics::CONTEXT, 1, &[]); | ||
logger::info!("retries exhausted for auto_retry payment"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update this message to differentiate between payment and payout retries
crates/router/src/core/payouts.rs
Outdated
let payout_attempt = &payout_data.payout_attempt.to_owned(); | ||
let payouts: &diesel_models::payouts::Payouts = &payout_data.payouts.to_owned(); | ||
|
||
// update connector_name | ||
payout_data.payout_attempt.connector = Some(connector_data.connector_name.to_string()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we update the connector in the current state and DB only when it is re-evaluated?
Calling this here will make a DB query every time a connector is to be called for creation / updation.
…stman-runner * 'main' of github.com:juspay/hyperswitch: chore(version): 2024.02.29.0 chore(postman): update Postman collection files feat(analytics): add force retrieve call for force retrieve calls (#3565) refactor(connector): [Mollie] Mask PII data (#3856) refactor(connector): [Gocardless] Mask PII data (#3844) feat(analytics): adding metric api for dispute analytics (#3810) feat(payment_methods): Add default payment method column in customers table and last used column in payment_methods table (#3790) fix(tests/postman/adyen): enable sepa payment method type for payout flows (#3861) feat(payouts): Implement Smart Retries for Payout (#3580) refactor(payment_link): add Miscellaneous charges in cart (#3645)
Type of Change
Description
Implement multiple connector retries for payout
Additional Changes
How did you test it?
Tested through Postman
Note: This affects the Payout flow.
Checklist
cargo +nightly fmt --all
cargo clippy