Skip to content

Multithreaded usage : requests are not sent #18

@Sunslash

Description

@Sunslash

I am trying to send multiple parallel requests to a Xml-RPC in order to reduce the response time.

The proper way to do it would be to use system.multicall, but this library does not seem to support it.

What I did is start two async tasks and wait for both calls to be completed, something like
`
var newStatusTask = Task.Run(() => { return _com.GetStatusStd(); }) ;
var newCounterTask = Task.Run(() => { return _com.GetInternalCounters(); }) ;

        var newStatusXml = await newStatusTask;
        var newCountersXml = await newCounterTask;

`

This mostly work, but sometimes one of the requests is not sent at all and leads to a timeout. I confirmed this with Wireshark and looping over both calls every 300ms.

If I wait for the first request to be completed before sending the second one, everything works fine. However for this application the additional ~100ms required to do this could reduce the overall performance.

Is there a proper way to handle parallel xml-rpc calls ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions