Async support in extensions
do the .NET extensions support async? (with async extensions for .NET 4 / or at least TPL)
Do calls to processCustomSchemeRequest() come in parallel on multiple threads? Or are they queued? Are there limits in the number of calls to processCustomSchemeRequest() that can be processed in parallel?
Does one call to processCustomSchemeRequest() block a second call to processCustomSchemeRequest()?
Are you planning to implement a processCustomSchemeRequestAsync() method?
|?||Show this help|
|ESC||Blurs the current field|
|r||Focus the comment reply box|
|^ + ↩||Submit the comment|
You can use
Command ⌘ instead of
Control ^ on Mac
Support Staff 1 Posted by Shaun Sullivan on 07 Mar, 2014 01:30 PM
We do not officially test for async.
Yes, requests come in on multiple threads.
No, we do not have plans to implement async. The underlying Chromium
engine is highly performant and threaded. What is the specific scenario
you are looking at? I highly suggest you download and try the free
hobbyist version to see if it meets your needs.
2 Posted by Peter on 07 Mar, 2014 03:25 PM
CEF uses a callback mechanism to do async processing in resource handlers.
I do not see this in your extension interface, therefore I assume that you block the thread which would degrade Chromium's performance.
I guess that Chromium limits the number of threads for async requests. If Alchemium blocks those threads instead of using the callbacks to return the thread to Chromium and later post the data once it is available, there are probably limits that you do not see in Chrome or Chromium.
BTW, I want to access legacy systems in the extensions that might take some time until they return data.
Before investing time and doing load testing of Alchemium, I would like to know if the internal implementation of the extension mechanism is suitable for heavy usage.
Support Staff 3 Posted by Shaun Sullivan on 07 Mar, 2014 11:53 PM
I think it would be suitable. Obviously, it is hard for me to dive too
deep without understanding the use case. Ideally you can use AJAX to POST
4 Posted by Peter on 13 Mar, 2014 12:02 PM
can you confirm that the processCustomSchemeRequest method is really called on multiple threads in parallel, so that I could block and wait for a response from the legacy system?
According to the CEF documentation there is only one IO thread and if you do not use the callback in your CEF RequestHandler implementation, it would block the one and only IO thread and all other requests would have to wait. Or do you spawn separate new threads?
Support Staff 5 Posted by Shaun Sullivan on 13 Mar, 2014 12:18 PM
I dug in a little deeper, and in your scenario, it would in fact, be
blocked until the request completed.