我正在编写 J2SE 应用程序,其目的是每天向远程服务器发送一定数量的请求。每天发送的请求数量有限,甚至每小时 - 每天 100K 请求 && 每小时 10K => aprox。每 2.8 秒 1 个请求。
我只写了一个示例程序,它每 15 秒打印一次——重复时我使用了 ScheduledExecutorService 和 ScheduledFuture,我指定了我的可运行,没有启动延迟,并且重复延迟 = 15000,时间单位 = MILLISECONDS。
在我的可运行测试中,我试图模拟在循环中做一些事情(只是简单的 println() 并在这些迭代之间使用 sleep(2800) ) - 因为我处于预定任务中,下一次执行之间有 15 秒,我刚刚意识到我需要 6 次print => 6 * 2800 = 14000,最高可达15000。但是正如我在睡觉时看到的那样,下一次执行应该在15000ms之后发生的整个任务实际上发生在:14000ms + 15000ms之后。我猜这个 sleep(2800) 对它有一些影响。
正如我所说,我需要每天重复发送一次某些请求,发送之间有一些时间延迟 - 但在接下来的 24 小时后不要触及此任务的全面执行。我怎样才能做到这一点?
使用: ScheduledFuture , ScheduledExecutorService , ThreadFactory
如果有人可以在这里提供帮助是我的代码https://db.tt/vznt4PWG,它是一个 Eclipse 项目。