public async Task <Result> Call_1(SendObj s, int i1, bool b1, Func <int, Task> cb, CancellationToken token) { //throw new Exception(); //for (var i = 0; i < 5; i++) //{ // cb.Invoke(i); // await Task.Delay(100); //} Console.WriteLine($"Receive: {s}"); Func <int, Task> newCb = async i => { Console.WriteLine("tid:" + GlobalTracer.Instance.ActiveSpan.Context.TraceId); await cb(i); }; try { await _proxy.Proxy.Call_1_1(201, newCb, token); } catch (FaultException e) { var aa = e.Detail.StackTrace; Console.WriteLine(e); throw; } return(new Result()); }
public async Task <Result> Call(string s) { GlobalTracer.Instance.ActiveSpan.SetTag(new StringTag("file"), "123.txt"); _logger.LogInformation($"Receive: {s}"); var obj = new SendObj { InnerObj = new InnerObj { IP1 = "ip1" }, D1 = DateTime.Now, P1 = "p1", I1 = 100, B1 = true, BigList = new List <InnerObj> { new InnerObj { IP1 = "1" }, new InnerObj { IP1 = "2" } } }; using (var scope = TracerScope.BuildChild("test")) { scope.Span.SetTag("p1", "123"); await Task.Delay(500); } try { throw new Exception("123"); } catch (Exception e) { _logger.LogError(e, "error msg"); } //Task.Run(async () => //{ // var proxy2 = _factory2.CreateProxy<IService_1>("grpc1"); // while (true) // { // await Task.Delay(1000); // await proxy2.Proxy.Call_1(obj, 101, true, // async i => { _logger.LogInformation($"tid:{GlobalTracer.Instance?.ActiveSpan.Context.TraceId}, callback:{i}"); }, default); // } //}); await _factory.CreateProxy <IService_1>("grpc1").Proxy.Call_1(obj, 101, true, async i => { _logger.LogInformation($"tid:{GlobalTracer.Instance?.ActiveSpan.Context.TraceId}, callback:{i}"); }, default); //await _factory.CreateProxy<IService_2>("grpc2").Proxy.Call_2(false); return(new Result()); }
/// <summary> /// Моя версия Contains для листа. Стандартный работает не так, как мне надо (сам в шоке) /// </summary> /// <param name="L"></param> /// <param name="O"></param> /// <returns></returns> public static bool MyContains(ref List <SendObj> L, SendObj O) { bool res = false; foreach (var i in L) { if (i.name == O.name && i.uid == O.uid && i.SendTime.Date == O.SendTime.Date && i.SendTime.Hour == O.SendTime.Hour && i.SendTime.Minute == O.SendTime.Minute) { return(true); } } return(res); }
/* /// <summary> * /// Устаревший кусок кода. Делал лист для рассылки * /// </summary> * /// <returns></returns> * public static List<SendObj> CreateNotSendedArr() * { * //Dictionary<long, string> res = new Dictionary<long, string>(); * List<SendObj> res = new List<SendObj>(); * foreach (var i in Program.students.list) * { * foreach (var k in i.Shedule.Keys) * { * foreach (var j in i.Shedule[k]) * { * if (ContData(j) && !MyDateLessNow(j)) * res.Add(new SendObj(j, i.student_id, k)); * } * } * } * return res; * }*/ /// <summary> /// Актуальный код. Дополняет лист рассылки. По умолчанию вызывается раз в 2 минуты /// </summary> /// <param name="L"></param> public static void AddNotSended(ref List <SendObj> L) { foreach (var i in Program.students.list) { foreach (var k in i.Shedule.Keys) { foreach (var j in i.Shedule[k]) { SendObj ths = new SendObj(j, i.student_id, k); //if (ContData(j) && !Sended.Contains(ths)) if (ContData(j) && !MyContains(ref Sended, ths)) { L.Add(ths); } } } } }