我有几个数据库来测试产品。每个数据库都有两组必须并行运行的任务。对于每个数据库,我运行以下两组任务:
Install -> Startup -> Test1
Install -> Startup -> Test2
所以我目前有两个安装在一个阶段,两个启动都在一个阶段,两个测试都在一个阶段。这看起来像:
Install1 and Install2
-> Startup1 and Startup2
->Test1 and Test2
我想在每次测试之后添加另一个任务,即电子邮件。电子邮件只是检查一个共享点站点,以查看我们的所有 Test1 测试是否已完成或 Test2 测试。只有当其中一个或另一个完成时它才会发送电子邮件。电子邮件必须在不同机器上的自己的代理上运行,以免两封相同的电子邮件同时发出。
此外,Test1 需要 1 小时才能完成,Test2 需要约 6 小时才能完成。我想在不等待 test2 的情况下发送 test1 的电子邮件。然后稍后发送 test2 的电子邮件。
我看到以下可能性:
- Test1 等待 Test2 完成,然后两封电子邮件都从电子邮件发送机发出。
- Test1 拥有自己的 Stage,尝试从电子邮件机器发送电子邮件。然后 Test2 运行并尝试从电子邮件机器发送电子邮件。(注意Test1和Test2顺序执行)
- Test1 和 Test2 有自己的阶段,阶段并行执行,Test1 和 Test2 并行执行,但只要测试完成,我就可以从电子邮件机器发送电子邮件
我很想拥有#3,但我认为同时执行阶段是不可能的。其他人能否想出一种方法,让电子邮件在测试完成后立即从另一台机器发出,同时最大限度地缩短时间?