Ülesanne: Kasutajatelt saadud sündmused, igaüks peab olema kontrollitud välisest allikast, kuid see ei vasta kohe. Rakenda VerificationService, mis: - Võtab kasutajatelt sündmusi vastu - Püüab igaüht kontrollida, ühendudes välise teenusega - Kui vastus on PENDING, proovib uuesti saata seda sündmust mitte varem kui 5 sekundi pärast - Maksimaalselt 3 katset, pärast mida kuvatakse stdout-is sündmuse ID koos olekuga FAILED - Edukalt töödeldud sündmused kuvatakse stdout-is olekuga VERIFIED Väliste sõltuvuste mallid ja stubid on juba rakendatud: 1. VerificationStatus 2. Event 3. VerificationResult 4. IExternalSource public enum VerificationStatus { OK, Pending, Error } public record Event(string Id, string Payload); public record VerificationResult(VerificationStatus Status, string? Message = null); public interface IExternalSource { VerificationResult Verify(string eventId); } public class VerificationService { private readonly IExternalSource _externalSource; private const int MaxAttempts = 3; private static readonly TimeSpan RetryDelay = TimeSpan.FromSeconds(5); public VerificationService(IExternalSource externalSource) { _externalSource = externalSource; } // TODO: implement }
C#
int i = 1; object obj = i; ++i; Console.WriteLine(i); Console.WriteLine(obj); Console.WriteLine((short)obj);
Mis võimaldas suurendada replikatsiooniteenuse läbilaskevõimet umbes 300-lt 700-le sõnumile sekundis? Kuidas kasutati ConcurrentDictionary ja SemaphoreSlim?
Action-ideede nimekiri = uus List<Action>(); iga iga 10 korduse jaoks { lisa () => System.Console.WriteLine(count); } iga iga tegevuse { tegevus(); } Mis on stdoutis?
Millised on Sum ja Count väärtused?
Kuidas korraldada ootamist uute sündmuste jaoks, kui järjekord on tühi, ja mis vahe on Channelil ja ConcurrentQueue'il?
Mis juhtub, kui ootate esimese lõpetatud ülesande saabumist Task.WhenAny abil, samal ajal kui teised ülesanded veel töötavad?
Kuidas piirata paralleelismi määra, töötades asünkroonsete ülesannete kogumiga?
public class A { public virtual void Print1() { System.Console.Write("A"); } public void Print2() { System.Console.Write("A"); } } public class B : A { public override void Print1() { System.Console.Write("B"); } } public class C : B { public new void Print2() { System.Console.Write("C"); } } static void Main(string[] args) { var c = new C(); A a = c; a.Print1(); a.Print2(); c.Print2(); } Mis on stdoutis?
public struct S : IDisposable { private bool dispose; public void Dispose() { dispose = true; } public bool GetDispose() { return dispose; } } Mis on stdoutis?
[nimi] räägi meile huvitavast ülesandest või lahendusest sinu praegusel või eelmisel töökohal, millest sooviksid jagada.