HTTP ವಿನಂತಿ ಮುಂದುವರಿಯುತ್ತಿರುವಾಗ ಸ್ಟಾಪ್‌ವಾಚ್ ಕಾಯುವಿಕೆಯನ್ನು ನಿಲ್ಲಿಸಬಹುದು. ಪ್ರಾಕ್ಸಿ ಮೂಲಕದ ಪ್ರಯತ್ನಕ್ಕೆ ಉದ್ದೇಶಿತ ಬಜೆಟ್ ಇದ್ದಾಗ ಕಾರ್ಯಾಚರಣೆಗೇ ರದ್ದತಿ ನೀಡಿ.

ಇರುವ ಪ್ರಾಕ್ಸಿಗೆ ಸಂರಚಿಸಿದ HttpClient ಹೊಂದಿರುವ ಆಧುನಿಕ .NET ಅಪ್ಲಿಕೇಶನ್‌ಗಾಗಿ:

using var budget = new CancellationTokenSource(TimeSpan.FromSeconds(5));
using var response = await client.GetAsync(
    targetUrl,
    HttpCompletionOption.ResponseHeadersRead,
    budget.Token);
response.EnsureSuccessStatusCode();
string body = await response.Content.ReadAsStringAsync(budget.Token);

ಅದೇ ಬಜೆಟ್ ಸಿದ್ಧತೆಯ ಮೊದಲು ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಬಾಡಿ ಓದುವ ಸಮಯದಲ್ಲಿ ಸಕ್ರಿಯವಾಗಿರುತ್ತದೆ. ResponseHeadersRead ಹೆಡರ್‌ಗಳ ನಂತರ ನಿಯಂತ್ರಣವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ HttpClient‌ನ ಸ್ವಂತ ಪೂರ್ಣಗೊಳಿಸುವ ಸಮಯಮಿತಿಯು ನಂತರದ ಬಾಡಿ-ಓದುವ ಬಜೆಟ್ ಅನ್ನು ತಾನೇ ನಿರ್ಧರಿಸುವುದಿಲ್ಲ.

ರದ್ದತಿಯನ್ನು HTTP ಸ್ಥಿತಿ ಮತ್ತು ಸಾಗಣೆ ದೋಷಗಳಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿ. OperationCanceledException ಒದಗಿಸಿದ ಟೋಕನ್‌ನಿಂದ ಅಥವಾ ಇನ್ನೊಂದು ಸಂರಚಿತ ಸಮಯಮಿತಿಯಿಂದ ಬರಬಹುದು; ಪ್ರತಿ ವೈಫಲ್ಯವನ್ನು ಸತ್ತ ಪ್ರಾಕ್ಸಿ ಎಂದು ವರದಿ ಮಾಡುವ ಬದಲು ಅನ್ವಯವಾಗುವ ರದ್ದತಿ ಮೂಲವನ್ನು ಪರಿಶೀಲಿಸಿ.

ಈ ಪ್ರಾಕ್ಸಿ ಮಾರ್ಗವನ್ನು ಹೊಂದಿರುವ ಕ್ಲೈಂಟ್ ಅನ್ನು ಮರುಬಳಸಿ. ಪ್ರಯತ್ನವನ್ನು ರದ್ದುಗೊಳಿಸುವುದು ಪ್ರತಿ ನಂತರದ ವಿನಂತಿಗೆ ಇಡೀ ಸಂಪರ್ಕ ಪೂಲ್ ಅನ್ನು ಮರುನಿರ್ಮಿಸುವುದು ಎಂದರ್ಥವಲ್ಲ.

ಉದಾಹರಣೆಯು ಸೀಮಿತ ಪ್ರತಿಕ್ರಿಯೆ ಬಾಡಿಯನ್ನು ಬಫರ್ ಮಾಡುತ್ತದೆ. ಸ್ಟ್ರೀಮಿಂಗ್ ಡೌನ್‌ಲೋಡ್ ಟೋಕನ್ ಅನ್ನು ತನ್ನ ಸ್ಟ್ರೀಮ್-ನಕಲು ಲೂಪ್ ಮೂಲಕ ರವಾನಿಸಬೇಕು ಮತ್ತು ಪ್ರತಿ ನಿರ್ಗಮನ ಮಾರ್ಗದಲ್ಲಿ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಬೇಕು.

ರದ್ದತಿ ಕಾರ್ಯಾಚರಣಾ ನೀತಿಯನ್ನು ವ್ಯಕ್ತಪಡಿಸುತ್ತದೆ, ಪ್ರತಿ ಆಧಾರವಾಗಿರುವ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಕ್ರಿಯೆಗೆ ನಿಖರವಾದ ವಾಲ್-ಕ್ಲಾಕ್ ಭರವಸೆ ಅಲ್ಲ. Task.IsCompleted ಮೇಲಿನ ಅಂತ್ಯವಿಲ್ಲದ ಪೋಲಿಂಗ್ ಲೂಪ್‌ನಿಂದ ಅದನ್ನು ಬದಲಿಸುವುದನ್ನು ತಪ್ಪಿಸಿ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು