如何将唯一参数传递给Inetlab客户端,例如数据库ID?

问题描述 投票:3回答:1

我的数据库中有一些短信,我想在所有任务完成后更新它们的状态,我不想使用task.Result或等待每个提交,因为它工作非常缓慢。我需要将短信ID传递给客户端,并在响应时获得ID。我使用inetlab。有什么建议吗?

            var messagesNumber = 30;
            List<Task<SubmitSmResp[]>> tasks = new List<Task<SubmitSmResp[]>>();

            for (int i = 0; i < messagesNumber; i++)
            {
                tasks.Add(client.SubmitAsync(
                          SMS.ForSubmit()
                           .AddUserDataHeader(new Inetlab.SMPP.Headers.UserDataHeader(1, new byte[2]))
                              .From("test")
                              .To("2323")
                              .Coding(DataCodings.UCS2)
                              .Text($"{i}test")));
            }

            await Task.WhenAll(tasks);
            int k = 0; var thr = 0;
            foreach (var t in tasks)
            {
                var res = (SubmitSmResp[])t.Result;
                var ss = res.Select(x => x.Header.Sequence);
                if (res.All(x => x.Header.Status == CommandStatus.ESME_ROK))
                {
                    //want to update this sms in database,I need sms Id
                }
                if (res.All(x => x.Header.Status == CommandStatus.ESME_RTHROTTLED))
                {
                    //want to update this sms in database,I need sms Id
                    thr++;
                }
            }

c# sql .net .net-core smpp
1个回答
-1
投票

GUID可以选择。您可以用作唯一标识符。

© www.soinside.com 2019 - 2024. All rights reserved.