में async प्रतीक्षा का उपयोग करने के लिए सर्वोत्तम अभ्यास मेरे पास .NET कोर वेब एपीआई है जो सेवा परत के रूप में है। सेवा परत में सभी ईएफ कोड हैं।वेबपी
यदि यह कोड
protected Task<IActionResult> NewTask(Func<IActionResult> callback)
{
return Task.Factory.StartNew(() =>
{
try
{
return callback();
}
catch (Exception ex)
{
Logger.LogError(ex.ToString());
throw;
}
});
}
नियंत्रक कार्रवाई में साथ basecontroller है मैं उपरोक्त विधि में सेवा के लिए उदाहरण के लिए सभी कॉल्स लपेट :
[HttpGet("something")]
public async Task<IActionResult> GetSomething(int somethingId)
{
return await NewTask(() =>
{
var result = _somethingService.GetSomething(somethingId);
if (result != null)
return Ok(result);
else
return NotFound("Role not found");
});
}
क्या यह सही पैटर्न कल पर विचार कर रहा है मेरे पास कार्रवाई में एक से अधिक सेवा कॉल हो सकती हैं या अन्य webservice पर कॉल कर सकती हैं। कृपया सलाह दें।
आप क्या यहाँ पूरा करने के लिए कोशिश कर रहे हैं के बारे में अधिक जानकारी दे कृपया कर सकते हैं:
आपका कार्यों कुछ इस तरह देखना चाहिए? आपका कोड मूल रूप से पृष्ठभूमि थ्रेड पर सिंक्रोनस काम करके असीमित काम करता है। Task.Factory.StartNew का उपयोग करके उल्लेख नहीं करना बहुत खतरनाक है और आपको इसके बजाय कार्य का उपयोग करना चाहिए। लेकिन आपको कार्य की आवश्यकता भी नहीं है। यहां रुन। –
कुछ सेवा में कुछ क्रूड ऑपरेशंस हैं जो इकाई फ्रेमवर्क कोर का उपयोग करते हैं। आज भी मेरे पास फीड सेवा जैसी एक सेवा हो सकती है जिसमें httpclient का उपयोग करके बाहरी वेब से फ़ीड प्राप्त करने के लिए कॉल किया जाएगा। मैं चाहता हूं कि मेरी एपीआई एसिंक से प्रतीक्षा करें। चीज़ के ऊपर चीज़ों से ऊपर की जरूरत है। इन जरूरतों को पूरा करेगा + कोई चिंता या सुधार। – krishna