首页 文章

何时使用Cron Job与ScheduledExecutorService

提问于
浏览
1

我们的团队目前正在开发一个Java应用程序,它将具有许多不断运行的处理线程(执行诸如从队列中轮询) .

与此应用程序相关的是,必须在某些预定时间段(每天一次,每六个小时等)运行一系列任务 . 我们团队的一些成员认为最好通过cron将这些任务作为独立进程执行,而其他人则认为将它们包含在通过Java的ScheduledExecutorService安排的当前应用程序中会更好 . 有关何时使用cron与内部ScheduledExecutorService的最佳做法,还是仅仅是偏好问题?

3 回答

  • 2

    使用 ScheduledExecutorService 的优点是你正在使用100%java,因此如果你想升级你的服务器/更改你的机器由于某种原因,那么你不需要重新配置cron作业 . 此外,ScheduleExceutorService还允许您使用 Callable ,因此您可以返回一些结果并在java中处理它们 .

  • 1

    使用cron的优点是,您的操作团队可能熟悉它,并且您可以轻松地重新安排或暂停操作,而无需更改和重新部署应用程序 . (调度批处理操作主要是操作团队的任务)

    缺点是您需要在应用程序中使用cron作业可以调用的接口(如REST服务),或者cron启动第二个VM,在执行作业期间与应用程序并行运行 .

    我们目前正在从基于Quartz的内部调度转向cron / REST方法 .

  • 0

    我会在单一责任原则方面投票:如果周期性任务可以作为独立的进程运行,独立于主应用程序,那么它们应该作为单独的进程运行 . 如果你把它全部扔进一个大麻袋,我的钱说你有一天会后悔这个决定 .

相关问题