I’ve recently expanded my Tapestry application to run multiple hosts. While it’s quite OK for the web-faced part (sticky load balancer does most of the job), it’s not very straightforward with background jobs.
Some of them can be quite easily distributed using database row-level locks, but this doesn’t work for every use case I have. Are there any suggestions about this? I’d prefer not to have a dedicated process running background tasks. Ideally, I want to dynamically distribute background jobs between hosts in cluster, based on current load status. -- Ilya Obshadko