-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
addEventAsync() issue under load #65
Comments
Sorry that you're having trouble. I'm not sure exactly why you'd be getting dropped events from the synchronous code, but you should be able to use Unfortunately this isn't very clearly documented, but if you override |
Hi Geeber, We had success with the Unfortunately it appears that there is no way to retrieve the result of Is there any currently undocumented feature which would allow us to retrieve the JSON result. At the moment our approach would be to extend |
Unfortunately we don't currently provide access to the results. Out of curiosity, why do you need to see them? The SDK handles processing the results and retrying if there were transient failures, such as network connectivity issues. If you explain your specific application requirements a bit more, I might be able to suggest an alternative approach (or convince you that you don't need to worry about it). |
We would like to collect and persist any exceptions caused, alongside the DB record which caused it for later analysis and improvement of the quality of data we are pushing without needed to enable the logging in a production environment. For example, we recently discovered whilst reviewing near-to-production data in a development environment that some of the pushed events are not appearing in We'd also like to only mark each record as sent once we have flushed the queue and received a success response for each event but due to the amount of data we need to push, we cannot send events individually |
We are having some issues with the Keen.io java client we are pushing a lot of events. those event are leagcy event and we are overriding the timestamp value of each event. We using the addEventAsync() method.
what we observed is that under load this does not work as expected and events are dropped.
which returns a instances of ThreadPoolExecutor as per
public static ExecutorService newFixedThreadPool(int nThreads) {
return new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue());
}
We think the TreadPoolExecutor implementation drops requests when all the threads are busy doing pushing event to keen.io
We cannot use sendQueuedEventsAsync() as we need to control the timestamp value of the events ?
I don't really understand (didn't look into it) why we cannot specified (override) the timestamp of the events when queuing them ?
any other suggestion on how we could this ?
The text was updated successfully, but these errors were encountered: