-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Nexus caller timeouts #9010
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
Nexus caller timeouts #9010
Conversation
| attrs.ScheduleToCloseTimeout = durationpb.New(maxTimeout) | ||
| } | ||
|
|
||
| // Trim secondary timeouts to the primary timeout. |
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.
Should this also go the other way? If only schedule-to-start or start-to-close is set, but not schedule-to-close, should we set schedule-to-close to one of those timeouts?
IIRC the operation deadline we send to the handler is based only on schedule-to-close timeout, so the handler may not be aware that the operation has a deadline in that case.
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.
It shouldn't go the other way because the new timeouts are more specific. But you make a good point that the operation timeout header should take the new timeouts into consideration.
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.
Done.
**What changed?** Add ScheduleToStart and StartToClose timeouts for Nexus operations. **Why?** Give callers more control over timeouts of the various operation lifecycle stages. **Server PR** temporalio/temporal#9010
**What changed?** Add ScheduleToStart and StartToClose timeouts for Nexus operations. **Why?** Give callers more control over timeouts of the various operation lifecycle stages. **Server PR** temporalio/temporal#9010
1316c05 to
a3b0e54
Compare
This reverts commit 8f4d4ba.
This reverts commit 3212fe2.
## What changed? Reapplied #9010. The original PR that introduced these timeouts did not populate the operation-timeout header or set the call context timeout correctly. This PR fixes the logic.
Overview
This commit implements two new granular timeout types for Nexus operations, allowing callers to have fine-grained control over different phases of operation execution:
These timeouts complement the existing Schedule-to-Close Timeout to provide better control and diagnostics for Nexus operation execution.
See the corresponding API PR: temporalio/api#695.