我们正在使用EngineYard App Cloud托管我们的Ruby on Rails应用程序,这对我们非常有效。他们提供了一系列部署回调(before_restart、after_restart等),类似于Capistrano的回调。
我们的应用程序中有一系列Rake任务,用于维护应用程序的各个部分。如果我们在数据库中添加了新的业务规则,我们可能需要重新加载用户关联的业务规则等。
这些任务没有硬性时间表,但我们也不想在每次部署时运行每个任务,因为它们会减慢部署过程。
是否有任何系统可以允许我们定义一个任务在下一次部署时运行,类似于迁移。我心中理想的系统如下:
- 我们意识到在下一次部署时需要运行一个任务 - 我们通过系统安排任务 - 在下一次部署时,系统查看后置部署任务列表--它注意到最近的任务尚未在特定服务器上运行(就像迁移在运行时标记数据库一样,只有最新的未运行迁移才会被触发)--新任务被触发
有没有关于安排这些后置部署任务的最佳实践建议,并确保它们在服务器上运行之前已经运行?
谢谢!
我们的应用程序中有一系列Rake任务,用于维护应用程序的各个部分。如果我们在数据库中添加了新的业务规则,我们可能需要重新加载用户关联的业务规则等。
这些任务没有硬性时间表,但我们也不想在每次部署时运行每个任务,因为它们会减慢部署过程。
是否有任何系统可以允许我们定义一个任务在下一次部署时运行,类似于迁移。我心中理想的系统如下:
- 我们意识到在下一次部署时需要运行一个任务 - 我们通过系统安排任务 - 在下一次部署时,系统查看后置部署任务列表--它注意到最近的任务尚未在特定服务器上运行(就像迁移在运行时标记数据库一样,只有最新的未运行迁移才会被触发)--新任务被触发
有没有关于安排这些后置部署任务的最佳实践建议,并确保它们在服务器上运行之前已经运行?
谢谢!