amoghrajesh commented on code in PR #76571:
URL: https://github.com/apache/airflow/pull/76571#discussion_r4489833941


##########
task-sdk/src/airflow/sdk/api/client.py:
##########
@@ -1181,8 +1184,34 @@ def __init__(self, client: Client):
         self.client = client
 
     def run(self, callback_id: uuid.UUID) -> None:
-        """Exchange the single-use callback token for an execution token."""
-        self.client.patch(f"callbacks/{callback_id}/run")
+        """
+        Exchange the single-use callback token for an execution token.
+
+        The server uses up the token once it gets the request, so only retry 
when the request never
+        reached it, and give a slow server longer to answer.
+        """
+        try:

Review Comment:
   Isn't the root cause is on the server: `PATCH /callbacks/{id}/run` uses up 
the token on the first request, so no client retry is ever safe. If the 
endpoint returned the same execution token for a retry of the same callback 
within a short window, we would not need to tune timeouts. That would also 
cover 502/503 from a proxy / load balancer setup during restarts. Can we 
consider such an approach instead?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to