ਡੈਡਲਾਈਨ ਉਸ ਕਾਰਵਾਈ ਨੂੰ ਦਿਓ ਜੋ ਨੈੱਟਵਰਕ ਕੰਮ ਰੱਦ ਕਰ ਸਕਦੀ ਹੈ। ਪ੍ਰਾਕਸੀ ਰਾਹੀਂ ਸੰਰਚਿਤ ਮੌਜੂਦਾ .NET HttpClient ਲਈ:

using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);

ਐਪਲੀਕੇਸ਼ਨ client ਅਤੇ uri ਦਿੰਦਾ ਹੈ। ਇਹ ਓਵਰਲੋਡ ਰੱਦ ਕਰਨ ਵਾਲਾ ਟੋਕਨ ਲੈਂਦਾ ਹੈ; ਇਸ ਦੇ ਟਾਸਕ ਦੇ ਇੰਤਜ਼ਾਰ ਦੁਆਲੇ ਦਾ ਟਾਈਮਆਊਟ ਸਿਰਫ਼ ਉਸੇ ਕਾਲਰ ਦਾ ਇੰਤਜ਼ਾਰ ਸੀਮਿਤ ਕਰੇਗਾ। ਪੂਰਨਤਾ ਫਲੈਗ ਪੋਲ ਕਰਨ ਵਿੱਚ ਵੀ ਇਹੀ ਸਮੱਸਿਆ ਹੈ: ਕਾਲਰ ਚਲਾ ਜਾ ਸਕਦਾ ਹੈ ਜਦਕਿ ਸਾਕਟ ਅਤੇ ਵਰਕਰ ਵਿਅਸਤ ਰਹਿੰਦੇ ਹਨ।

ਰੱਦ ਕਰਨਾ ਕਲਾਇੰਟ ਦੇ ਲਾਗੂਕਰਨ ਅਤੇ ਸਫ਼ਾਈ ਮਾਰਗ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ। ਇਹ ਵਾਅਦਾ ਨਹੀਂ ਕਰਦਾ ਕਿ ਹੇਠਲੇ ਪੱਧਰ ਦੀ ਹਰ ਕਾਰਵਾਈ ਕਿਸੇ ਸਹੀ ਨਿਰਦੇਸ਼ 'ਤੇ ਰੁਕੇਗੀ। ਉਸ ਮਾਰਗ ਨੂੰ ਪੂਰਾ ਹੋਣ ਦਿਓ ਅਤੇ ਕਾਰਵਾਈ ਦੇ ਮਾਲਕੀ ਵਾਲੇ ਸਰੋਤ ਛੱਡੋ। ਡਿਜ਼ਾਈਨ ਵਿੱਚ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਨਿਯੰਤਰਿਤ ਬਾਡੀ ਪੜ੍ਹਨ ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ; ਆਧੁਨਿਕ .NET ResponseHeadersRead ਕਾਰਵਾਈ ਲਈ, ਉਹੀ ਟੋਕਨ ਬਾਡੀ ਪੜ੍ਹਨ ਰਾਹੀਂ ਭੇਜੋ। ਹੋਰ ਕਲਾਇੰਟ ਆਪਣੇ ਰੱਦ ਕਰਨ, ਰੋਕਣ ਅਤੇ ਸਫ਼ਾਈ ਇੰਟਰਫ਼ੇਸ ਦਿੰਦੇ ਹਨ।

ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਲਈ ਪਿਛਲੀ ਕੋਸ਼ਿਸ਼ ਦਾ ਨਤੀਜਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਦੀ ਪਛਾਣ ਅਤੇ ਚੁਣੀ ਪ੍ਰਾਕਸੀ ਰੱਖੋ, ਲੋੜ ਪੈਣ 'ਤੇ ਰੱਦ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕਰੋ ਅਤੇ ਬਦਲ ਬੇਅੰਤ ਸ਼ੁਰੂ ਕਰਦਿਆਂ ਕੰਮ ਗੁਆਉਣ ਤੋਂ ਬਚੋ। ਨਹੀਂ ਤਾਂ ਹੌਲੀ ਐਂਡਪੌਇੰਟ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਛੱਡਣ ਨਾਲੋਂ ਤੇਜ਼ੀ ਨਾਲ ਕੰਮ ਇਕੱਠਾ ਕਰ ਸਕਦਾ ਹੈ।

ਦੂਰ ਦੇ ਨਤੀਜੇ ਲਈ ਵੱਖਰੀ ਸੰਭਾਲ ਚਾਹੀਦੀ ਹੈ। ਰੱਦ ਹੋਣ ਵੇਲੇ ਮੰਜ਼ਿਲ ਨੂੰ ਪਹਿਲਾਂ ਹੀ ਸਬਮਿਸ਼ਨ ਮਿਲ ਚੁੱਕਾ ਹੋ ਸਕਦਾ ਹੈ। ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਰਿਕਵਰੀ ਜਾਂ idempotency ਨੀਤੀ ਵਰਤੋ; ਸਥਾਨਕ ਕੰਮ ਰੋਕਣ ਨਾਲ ਦੂਰ ਦੀ ਕਾਰਵਾਈ ਰੱਦ ਨਹੀਂ ਹੁੰਦੀ।

ਸੰਬੰਧਿਤ ਲੇਖ