I'm looking for a good general-purpose automation tool (not for building software in any sense), well-suited for regular overlapping execution.
It should be based on modern and concise sсripting or functional programming language (i. e. I want to write task logic in such language).
Advanced task graph execution management (not to execute common dependencies twice, parallel execution).
Configurable up-to-date logic (to skip ready tasks).
It would be great if this automation framework has a notion that instances of the same task, started in different time frames, could interfer undesirably, and support strategies for this situation (nothing to do - by default, queue the task, started later, or raise an error).
I know several automation tools, meeting first two requirements:
Doit doesn't support the last desire, not sure about Gradle and Rake, suspecting they doesn't too.
However, the last item isn't strongly required. I'll appreciate your thoughts about mentioned above tools as well, if you have an extensive experience with them and can compare with other automation tools. Or do better alternatives exist?