延迟工作一段时间再重新上班

时间:2017-11-08 02:38:11

标签: java multithreading delay scheduledexecutorservice

我有一个java类,它将数据写入数据库,然后为每个写入的行发送一条消息给REDIS通道。现在我只想在延迟5秒后发送REDIS消息。

现在程序执行此操作:

List<Future<T>> futures = threadPool.invokeAll(tasks, timeoutSeconds, TimeUnit.SECONDS);

每个任务对应于发布到REDIS频道。如何延迟发送所有这些任务5秒钟,如何在5秒后确定只有一个工作线程获取作业,以防主线程死亡?

我正在考虑使用ScheduledExecutorService并将该服务作为独立服务运行。当分配具有计划的作业时,它会延迟5秒钟,然后从其池中分配一个工作人员来完成工作。

我需要像Curator Framework和锁定机制这样的东西吗?

什么是好的设计? 感谢

0 个答案:

没有答案