作业调度调度平台的几个技术细节
前面我写了一个文章, 作业调度系统的构思, 链接为http://www.cnblogs.com/harrychinese/archive/2011/02/11/One_Batch_Scheduling_System_Design.html , 这篇讲一下几个关键点的技术选择.
1. 跨OS/跨平台的互操作性, 可以采用ssh方式, 可以借鉴fabric的ssh部分
2. 关于cluster failover, Java有Quartz(.Net有Quartz.Net)可以使用, 但python好像没有很好的框架, 在下面的链接中, http://stackoverflow.com/questions/1727138/an-enterprise-scheduler-for-python-like-quartz 给出了另一个方案, DRMAA, 采用Sun的实现Sun Grid Engine, Python可以用drmaa-python(http://code.google.com/p/drmaa-python/)来操纵DRMAA. 其实开源系统 knime 的 cluster-execution也是采用Sun Grid Engine,
3. 对于cron特性的支持, 可以采用APScheduler, (http://pypi.python.org/pypi/APScheduler/1.01)
如果用Jython开发的话, 上述2#和3#都可以Quartz. 现在的问题是, Python还是Jython?