I've completed a working version of the Excel add-ins, both the RTD receive Excel add in and the publish addin to connect Excel to Redis now working.
That enables any excel files to share a value, and also pick up the latest value if they can connect to the
Redis server. The point of this for me was that they'd monitor some control values from Streambase,
which are also posted to Redis.
Takeaways - Redis is really nice and easy to access - most of my testing was via Ruby and the Redis library which are very simple to use. Add in Express hides a lot of the idiosyncrasies of writing Excel add-ins, in this instance with Delphi. The OmniThead libraries are great, I still find it relatively easy to get things working with Delphi and Streambase makes it pretty simple to write event servers. Again another nice Redis library, Jedis, makes it a pleasure.
I used the OmniThread libraries to fire off the thread and their non locking queues
I'm using the Add In express vcl libraries which are good and their support is excellent.
Running on my four non hyper threaded cores (xeon 5150 2.66 GHz) machine
it seems happy to send and receive over 4000 updates a second - given Microsoft's stats there's clearly some scope for improvement, but that may be enough for the current project.
I've put my code on GitHub and a compiled versions on Mega
Further work could include some auditing (who sent the updates), sample handling of other data structures,
more robust error handling and notifications (keys and values with spaces in them don't really work)
I've also forked Nils Achterholt's delphi-redis adding a couple of methods for the publication and subscription
was not able to link to your compiled versions. i am trying to get redis structures in and out of excel via RTD, too. are you available to discuss off line?
ReplyDeleteSure. Let me know. Mega needs Chrome possibly. If it doesn't work I'll try and put them somewhere else.
ReplyDeleteJohn