如何设置 cron 每天随机运行一次

Dav*_*nis 4 cron dsl groovy jenkins

大家好,现在我有一个基本的 cron,每天在 1 点和 6 点运行我的东西两次。类似于:

H 1,18 * * *
Run Code Online (Sandbox Code Playgroud)

问题是我现在有大约 100 个事情正在启动,这堵塞了我的机器。我想每天为每个作业随机生成一次运行时间。如果同时去5-7个就可以了。所以我想我的问题是。其一,这可能吗?如果是这样,是否有最佳实践?我正在 groovy 中加载所有内容,所以我只是想生成一个 1-24 之间的数字并将其添加到此中:

cron('H 1,18 * * *')
Run Code Online (Sandbox Code Playgroud)

如果可能的话。但我觉得这仍然会阻碍我,因为我还有很多事情要做。

Dav*_*nis 6

我这样做了:

H H(0-7) * * *
Run Code Online (Sandbox Code Playgroud)

这似乎给了它一个 12 到 7 之间的随机时间,这对我来说有好处。您还可以执行以下操作:

    def rand = Math.abs(new Random().nextInt() % 24) + 1;
    triggers {
        githubPush()
        cron('H ' + rand + ' * * *')
    }
Run Code Online (Sandbox Code Playgroud)

但似乎额外,因为我所做的工作。