【问题标题】:Should I run a recurring Job as a CRON or a JAR built using Java?我应该将循环作业作为 CRON 还是使用 Java 构建的 JAR 运行?
【发布时间】:2012-10-20 14:25:42
【问题描述】:

我有一个资源非常少的 Linux CENTOS 服务器(例如 AWS 微实例)。我在这台服务器上运行了 3 个 PHP 应用程序和 MySQL 服务器实例。我需要为我的应用程序运行多个重复性作业,这些作业需要发送电子邮件、清理过程和生成缩略图。我不想让服务器变慢。在这种情况下将我的任务作为 CRON 或作为使用 Java 构建的 JAR 运行是否正确,或者我应该完全在该服务器之外查看一些东西?

【问题讨论】:

  • 我不认为将其作为 CRON 可能会减少服务器的资源/带宽使用。如果可能的话,你可以考虑一些优化来一起运行。
  • 通过crontab 条目使用cron,可能与nice 一起使用。我不明白使用 Jar 意味着什么:您是否考虑编写一个 java 程序,无限期运行,主要是休眠和等待??
  • 是的 Basile,你的理解是正确的

标签: java linux jar cron timer-jobs


【解决方案1】:

正如我评论的那样,通过crontab 条目使用cron,也许与nice 一起使用。

我不认为制作一个大部分时间会休眠并无限期运行的 Java 程序是一个好主意:它将使用资源(交换空间、进程)。而且它可能更脆弱:如果该 Java 进程停止(出于任何原因),您将不会发现。

如果您的 Java 程序相当小并且遵循该语言的一些旧规范,您甚至可以考虑将其编译为 ahead-of-time 或者将 gcj 编译成一个小的 ELF 可执行文件。

【讨论】:

    【解决方案2】:

    Java 对资源的要求很高。除了缩略图生成之外,您可以使用 cron 和 bash 完成所有您想做的事情。有很多像 cthumb 这样的缩略图生成应用程序,但我一个都没用过。直接使用 ImageMagick 可能更简单。

    这可能对资源的影响最小。是否有足够的资源是另一个问题,这取决于您希望执行此操作的频率,您很可能会这样做。

    【讨论】:

    • 感谢 Shri 关于缩略图生成的建议
    猜你喜欢
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 2015-06-22
    • 2017-01-06
    • 2014-12-05
    • 2016-06-27
    • 1970-01-01
    • 2011-04-11
    相关资源
    最近更新 更多