How can i do to make Sincronous Bulk Requests?

Post Reply
RPierre
Posts: 9
Joined: Wed Jul 17, 2019 8:38 pm

How can i do to make Sincronous Bulk Requests?

Post by RPierre » Mon Sep 02, 2019 3:32 pm

How can i do to make sincronous bulk request?

Dim oResp As IEnumerable(Of SubmitSmResp) = (Await _Client.Submit(oBatch)).ToArray() Does not work without Await

I'm facing a lot of problems with await bulk requests and want to test sincronous requisition.
developerlearn999
Posts: 85
Joined: Thu Jun 20, 2019 9:34 am

Re: How can i do to make Sincronous Bulk Requests?

Post by developerlearn999 » Tue Sep 03, 2019 1:45 pm

i am doing the same in C#, i can't break the 100/sec.
which problem do you face?
alt
Site Admin
Posts: 985
Joined: Tue Apr 25, 2006 9:45 am

Re: How can i do to make Sincronous Bulk Requests?

Post by alt » Tue Sep 03, 2019 5:51 pm

What kind of problems are you facing with async methods?


You can use following extension method for sync submission.

C#

Code: Select all

   public static class SmppClientExtension
    {
        private static readonly TaskFactory syncTaskFactory = new TaskFactory(CancellationToken.None,
            TaskCreationOptions.None, TaskContinuationOptions.None, TaskScheduler.Default);

        public static IEnumerable<SubmitSmResp> SyncSubmit(this SmppClient client, IEnumerable<SubmitSm> batch)
        {
            return syncTaskFactory.StartNew(() => client.Submit(batch)).Unwrap().GetAwaiter().GetResult();
        }
    }
VB.NET

Code: Select all

   
   Public Module SmppClientExtension
		Private ReadOnly syncTaskFactory As New TaskFactory(CancellationToken.None, TaskCreationOptions.None, TaskContinuationOptions.None, TaskScheduler.Default)

		<System.Runtime.CompilerServices.Extension> _
		Public Function SyncSubmit(ByVal client As SmppClient, ByVal batch As IEnumerable(Of SubmitSm)) As IEnumerable(Of SubmitSmResp)
			Return syncTaskFactory.StartNew(Function() client.Submit(batch)).Unwrap().GetAwaiter().GetResult()
		End Function
   End Module
Post Reply