Sobes.tech

Գործառույթ: Օգտագործողներից ստացվող իրադարձությունները, յուրաքանչյուրն անհրաժեշտ է ստուգել արտաքին աղբյուրում, բայց դա անմիջապես պատասխան չի տալիս: Իմպլեմենտացեք VerificationService, որը: - Ստանում է իրադարձություններ օգտագործողներից - Փորձում է ստուգել յուրաքանչյուրին կապվելով արտաքին ծառայության հետ - Եթե պատասխանն է PENDING, կրկին ուղարկում է այս իրադարձությունը ոչ շուտ քան 5 վայրկյան - Առավելագույնը 3 փորձ, հետո իրադարձության ID-ն արտածվում է stdout- ում FAILED կարգավիճակով - Հաջողությամբ մշակված իրադարձությունները արտածվում են stdout- ում VERIFIED կարգավիճակով Արտաքին կախվածությունների ձևանմուշներն ու սթաբները արդեն իրականացված են: 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 }

47

Ի՞նչն է հնարավորություն տվել ռեպլիկացիայի ծառայության throughput-ը մոտ 300-ից հասնելով 700 հաղորդագրության։ Ինչպես օգտագործվեցին ConcurrentDictionary և SemaphoreSlim։

45

Action-ների ցանկը = նոր List<Action>(); յուրաքանչյուր 10 կրկնության համար { Action-ները ավելացրեք () => System.Console.WriteLine(count); } յուրաքանչյուր Action-ի համար { Action(); } Ի՞նչ կլինի stdout-ում։

42

Ինչ է տեղի ունենում, երբ սպասում ենք առաջին ավարտված գործին Task.WhenAny-ով, մինչդեռ մյուս գործերը դեռ աշխատում են?

34

Ինչպես կազմակերպել նոր իրադարձությունների սպասումը, եթե հերթը դատարկ է, և ինչ է տարբերությունը Channel և ConcurrentQueue միջև?

33

Ինչպես սահմանափակել համաժամանակյա գործերի քանակը, երբ մշակվում է ասինխրոն գործերի հավաքածու?

30

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(); } stdout-да эмне болот?

28

public struct S : IDisposable { private bool dispose; public void Dispose() { dispose = true; } public bool GetDispose() { return dispose; } } Ի՞նչ կլինի stdout-ում։

24

[անուն] պատմիր մեզ հետաքրքիր առաջադրանքի կամ լուծման մասին քո ներկայիս կամ նախորդ աշխատանքի վայրից, որը ցանկանում ես կիսել։

22