目前,有计划为测试团队设计一个自动化的部署和测试系统,该系统旨在挑选不确定的主机来执行部署(例如PXE引导Centos / ESXi)并为各种产品运行测试。我们决定采用 flask + sqlalchemy + postgres 来实现它。
由于偶尔要注册的主机(将其命名为任务B)的主机正忙于某些正在运行的任务(将其命名为任务A),因此任务B必须等到任务A完成(完成或发生异常)。 也就是说,任务A中所有涉及的主机变得空闲/空闲是要继续进行的火灾情况。 此外,在某些情况下,需要根据成功的部署执行测试运行(某些环境信息对于测试运行必不可少)。因此,也应该支持嵌套/批处理任务模式。
在上一次尝试中,我选择了 apscheduler 安排即时/日期时间任务添加,并在EVENT_JOB_EXECUTED / EVENT_JOB_ERROR上添加事件。
一旦检测到EVENT_JOB_EXECUTED / EVENT_JOB_ERROR事件,请查询一些表以确定应该选择继续执行的任务。
scheduler.add_listener(add_subsequent_job, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR)
我想知道这不是适合这种情况的解决方案,并且必须有更多的Pythonic和复杂的解决方案。
基于flask + postgres的合适解决方案是什么? 请提供一些提示或解决方案。谢谢。