ಡೆಡ್ಲೈನ್ ಟೋಕನ್ನೊಂದಿಗೆ ಪ್ರಾಕ್ಸಿ ಮೂಲಕ .NET HttpClient ವಿನಂತಿಯನ್ನು ರದ್ದುಗೊಳಿಸಿ
ಕರೆಗಾರರ ಕಾಯುವಿಕೆಯನ್ನು ಮಾತ್ರ ಮುಗಿಸುವ ಬದಲು ಪ್ರಾಕ್ಸಿ ಡೆಡ್ಲೈನ್ ಮುಗಿದಾಗ ನೆಟ್ವರ್ಕ್ ಕಾರ್ಯಾಚರಣೆಯನ್ನೇ ರದ್ದುಗೊಳಿಸಿ.
ನೆಟ್ವರ್ಕ್ ಕೆಲಸವನ್ನು ರದ್ದುಗೊಳಿಸಬಲ್ಲ ಕಾರ್ಯಾಚರಣೆಗೆ ಡೆಡ್ಲೈನ್ ನೀಡಿ. ಪ್ರಾಕ್ಸಿ ಮೂಲಕ ಸಂರಚಿಸಲಾದ ಇರುವ .NET HttpClient ಗಾಗಿ:
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);ಅಪ್ಲಿಕೇಶನ್ client ಮತ್ತು uri ಒದಗಿಸುತ್ತದೆ. ಈ ಓವರ್ಲೋಡ್ ರದ್ದತಿ ಟೋಕನ್ ಸ್ವೀಕರಿಸುತ್ತದೆ; ಅದರ ಕಾರ್ಯದ ನಿರೀಕ್ಷೆಯ ಸುತ್ತಲಿನ ಟೈಮೌಟ್ ಆ ಕರೆಗಾರರ ಕಾಯುವಿಕೆಯನ್ನು ಮಾತ್ರ ಮಿತಿಗೊಳಿಸುತ್ತದೆ. ಪೂರ್ಣಗೊಳಿಸುವ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಪೋಲ್ ಮಾಡುವುದರಲ್ಲೂ ಅದೇ ಸಮಸ್ಯೆ: ಸಾಕೆಟ್ಗಳು ಮತ್ತು ಕೆಲಸಗಾರರು ಕಾರ್ಯನಿರತವಾಗಿರುವಾಗ ಕರೆಗಾರರು ಹೊರಟುಹೋಗಬಹುದು.
ರದ್ದತಿಯು ಕ್ಲೈಂಟ್ನ ಅನುಷ್ಠಾನ ಮತ್ತು ಸ್ವಚ್ಛಗೊಳಿಸುವ ಮಾರ್ಗವನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ಪ್ರತಿ ಕೆಳಮಟ್ಟದ ಕ್ರಿಯೆಯು ನಿಖರ ಸೂಚನೆಯಲ್ಲಿ ನಿಲ್ಲುತ್ತದೆ ಎಂದು ಭರವಸೆ ನೀಡುವುದಿಲ್ಲ. ಆ ಮಾರ್ಗವು ಮುಗಿಯಲು ಬಿಡಿ ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಯು ಹೊಂದಿರುವ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿ. ವಿನ್ಯಾಸದಲ್ಲಿ ಪ್ರತ್ಯೇಕವಾಗಿ ನಿಯಂತ್ರಿತ ಬಾಡಿ ಓದುವಿಕೆಯನ್ನು ಸೇರಿಸಿ; ಆಧುನಿಕ .NET ResponseHeadersRead ಕಾರ್ಯಾಚರಣೆಗೆ, ಅದೇ ಟೋಕನ್ ಅನ್ನು ಬಾಡಿ ಓದುವಿಕೆಯ ಮೂಲಕ ರವಾನಿಸಿ. ಇತರ ಕ್ಲೈಂಟ್ಗಳು ತಮ್ಮದೇ ರದ್ದತಿ, ನಿಲ್ಲಿಸುವಿಕೆ ಮತ್ತು ಸ್ವಚ್ಛಗೊಳಿಸುವ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ.
ಮರುಪ್ರಯತ್ನಕ್ಕೆ ಹಿಂದಿನ ಪ್ರಯತ್ನದ ಫಲಿತಾಂಶ ಬೇಕು. ಅದರ ಗುರುತು ಮತ್ತು ಆಯ್ಕೆ ಮಾಡಿದ ಪ್ರಾಕ್ಸಿಯನ್ನು ಇರಿಸಿಕೊಳ್ಳಿ, ಅಗತ್ಯವಿದ್ದಾಗ ರದ್ದತಿ ಕೇಳಿ ಮತ್ತು ಪರ್ಯಾಯಗಳನ್ನು ಅನಿರ್ದಿಷ್ಟವಾಗಿ ಪ್ರಾರಂಭಿಸುತ್ತಾ ಕಾರ್ಯವನ್ನು ಕಳೆದುಕೊಳ್ಳುವುದನ್ನು ತಪ್ಪಿಸಿ. ಇಲ್ಲದಿದ್ದರೆ ನಿಧಾನ ಎಂಡ್ಪಾಯಿಂಟ್ ಅಪ್ಲಿಕೇಶನ್ ಬಿಡುಗಡೆ ಮಾಡುವುದಕ್ಕಿಂತ ವೇಗವಾಗಿ ಕೆಲಸವನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು.
ದೂರದ ಫಲಿತಾಂಶಕ್ಕೆ ಪ್ರತ್ಯೇಕ ನಿರ್ವಹಣೆ ಬೇಕು. ರದ್ದತಿ ಸಂಭವಿಸುವಾಗ ಗಮ್ಯಸ್ಥಾನವು ಈಗಾಗಲೇ ಸಲ್ಲಿಕೆಯನ್ನು ಸ್ವೀಕರಿಸಿರಬಹುದು. ಅಪ್ಲಿಕೇಶನ್ನ ಚೇತರಿಕೆ ಅಥವಾ idempotency ನೀತಿಯನ್ನು ಬಳಸಿ; ಸ್ಥಳೀಯ ಕೆಲಸವನ್ನು ನಿಲ್ಲಿಸುವುದು ದೂರದ ಕ್ರಿಯೆಯನ್ನು ರದ್ದುಗೊಳಿಸುವುದಿಲ್ಲ.