【发布时间】:2012-08-20 16:11:41
【问题描述】:
在我现在的雇主,我们使用 Ant 来执行我们的构建脚本,我需要在我们的 build.xml 文件中添加一个目标,该目标将在后台启动 4 个作为 Gearman 工作者的 PHP 脚本,然后停止这些脚本一次构建完成。
我查看了“parallel”和“daemons”指令(这是正确的词吗?)但我对 Ant 的经验不足,无法追踪我缺少的关于如何确保脚本运行的信息在后台。
【问题讨论】:
-
所以您说您需要在构建过程结束时停止 PHP 脚本,而不是仅仅将它们启动到后台并让它们运行?您是否需要捕获这些脚本的输出?
-
我不需要捕获这些脚本的输出,但是一旦构建结束就需要停止它们。它用于使用 Gearman 并行运行 Behat 测试,并且我在运行它将运行的服务器上没有任何访问权限来启动它们,让它们继续运行,并在它们崩溃时重新启动(无论出于何种原因)。
-
一次可以有多个构建吗? gearman 服务器及其作业将如何处理?
-
当然,一次运行的可能不止构建。 Gearman 应该能够处理它 AFAICT
-
我发现运行多个构建会导致不确定的构建获得任何特定的工作。因此构建 A 将处理构建 B 的作业,从而导致误报/误报。我最终抽象出与 Beanstalk 的实际集成,因此我将能够创建一个“内联”执行程序,以避免处理每次构建的作业命名空间。 注意:我们实际上使用的是 Beanstalk。