gpt4 book ai didi

java - 如何按计划按需执行 Java 任务?

转载 作者:行者123 更新时间:2023-11-28 22:18:49 25 4
gpt4 key购买 nike

我的任务是将一个大型 mssql 表转储到一个 csv 文件中,以便上传到其他地方。该任务需要每晚运行(或按任何计划运行),并且还应该可以按需执行(从网页)。 csv 转换必须在 Java 中完成。

这是我从未实现过的东西,但它似乎是一个非常普遍的需求。从我的谷歌研究中,我想到了两个选择。但我不知道这些是否有明显的缺陷,或者是否有我不知道的明显(和更好的)实现选项。所以我真的可以使用一些明智的反馈/建议来解决这个问题。

  1. 在 Web 服务容器(例如 Apache Tomcat)中执行我的 Java 应用程序。该应用程序将按任何时间表运行并执行其业务逻辑,而 Tomcat 将使它可以轻松地从网页访问。但这对于设置和维护 Tomcat 安装来说似乎有点矫枉过正。

  2. 将我的 Java 程序打包成一个 jar,并设置一个 Jenkins 作业(我可以访问 Jenkins 服务器安装)以按任何计划执行主类。并根据需要创建 Jenkins 作业(在 php 或其他语言中)以执行按需执行。这似乎是一个非常干净和简单的选择,我是否遗漏了任何明显的陷阱?

这项工作有很多工具,不知道如何选择合适的工具。

此外,我们将不胜感激任何关于如何以内存安全且省时的方式将表转换为 csv 的一般性建议。

最佳答案

处理按计划运行作业的最常见方法是 cron .

至于通过网页访问它,也许它可以作为网络服务运行,使用某种 rest 或 soap api。该 Web 服务基本上会运行您的 Java 逻辑并交付 csv 作为响应或在服务器上的文件系统上生成它。

至于转储数据 - 应该可以直接从 mysql 导出到 csv:Dump a mysql database to a plaintext (CSV) backup from the command line

如果不需要在 Java 中执行此操作,那么我会建议一个简单的网页,其中包含一个用于调用 mysqldump 命令的提交按钮。这可能是一个 php 脚本,它是系统调用的包装器,用于将 mysqldump 运行到 csv 并将其转储到 http 服务器上的某个位置。

关于java - 如何按计划按需执行 Java 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31465933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com