You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently our OperationHelpers class doesn't do much, and Long-Running Operation classes in general are very repetitive. Most of the logic could be shared.
Goals
Move repetitive bits to the OperationHelpers class.
If possible, write OperationHelpers in a way that ensures thread-safety (related discussion).
Implement the polling in a way that:
The default polling time can be overwritten individually by each operation type.
The default polling time can be set to zero by our test framework to improve playback runs. If possible, avoid Reflection.
Look for the retry-after property returned by the service when deciding the next polling time.
Make sure all Track 2 data plane libraries with LROs make use of the new OperationHelpers whenever possible. All these libraries are exhaustively listed below.
Consider:
Keeping OperationHelpers as an extension class.
Making OperationHelpers as part of the Azure.Core library.
Implementing the OperationHelpers functionality as part of the abstract Operation<T> class.
Track 2 data plane libraries that make use of LROs
FormRecognizer
KeyVault.Administration
KeyVault.Certificates
KeyVault.Keys
KeyVault.Secrets
MixedReality.RemoteRendering
Storage.Blobs
Synapse.Spark
TextAnalytics
Suggestion: we can use the ArmOperationHelpers class used by the resource manager libraries as a reference. Their LROs seem to follow a stricter pattern than the ones used in data plane libraries, so it may be a bit harder on our side.
The text was updated successfully, but these errors were encountered:
Currently our OperationHelpers class doesn't do much, and Long-Running Operation classes in general are very repetitive. Most of the logic could be shared.
Goals
OperationHelpers
class.OperationHelpers
in a way that ensures thread-safety (related discussion).The default polling time can be set to zero by our test framework to improve playback runs. If possible, avoidReflection
.retry-after
property returned by the service when deciding the next polling time.OperationHelpers
whenever possible. All these libraries are exhaustively listed below.OperationHelpers
as an extension class.OperationHelpers
as part of theAzure.Core
library.OperationHelpers
functionality as part of the abstractOperation<T>
class.Track 2 data plane libraries that make use of LROs
Suggestion: we can use the ArmOperationHelpers class used by the resource manager libraries as a reference. Their LROs seem to follow a stricter pattern than the ones used in data plane libraries, so it may be a bit harder on our side.
The text was updated successfully, but these errors were encountered: