I have implemented a StoreFunc for a data store that supports "pipelining" or accepting batches of operations in a single call. The putNext method of my StoreFunc adds each put operation to an in-memory queue that is a member variable of my class, then dequeues and sends all the operations to the data store in a batch when there are more than 100 of them. To take care of sending the last (partial) batch of operations after the last call to putNext, I tried flushing the queue in cleanupOnSuccess, but when it's called the queue of operations seems to be empty as if the StoreFunc instance on which cleanupOnSuccess is called is a different instance than the one that handled the putNext calls. Is there a limitation that prevents accessing the queue written to by putNext from cleanupOnSuccess, or is there a better approach to what I'm trying to do?
