繁体   English   中英

在linux服务器上运行用java编写的计划任务

[英]Running a scheduled task written in java on a linux server

我需要在特定的时间每天在linux服务器上运行一段java代码。

现在,我正在Ubuntu桌面上测试它,方法是从终端运行它,并根据需要正常运行。 为了安排,我从这里使用了库。

在实际的服务器上,将此作为进程运行的正确方法是什么?

我的意思是,在我的桌面上,我从终端运行代码,指定接近当前时间的时间,第一次测试它然后停止它(^ Z)。

在服务器上它是一个正确的方式将它推到后台? 我相信必须有更好的方法来实现这一目标。

谢谢

cron运行它就像你(通常)从命令行一样。 将它包装在设置适当环境变量的shell脚本中可能是最简单的。

您可以编写用于执行Java实用程序的shell脚本(您可能需要添加类路径和其他环境可变量)并将其放在crontab中。

这是快速的crontab参考

通常在J2EE应用程序中配置Quartz Schedular

Quartz是一个功能齐全的开源作业调度服务,可以与几乎任何Java EE或Java SE应用程序集成或一起使用 - 从最小的独立应用程序到最大的电子商务系统。 Quartz可用于创建简单或复杂的计划,以执行数十,数百甚至数万个作业; 将任务定义为标准Java组件的作业,这些组件可以执行几乎任何可以编程的程序。 Quartz Scheduler包含许多企业级功能,例如JTA事务和集群。

我在linux机器上使用crontab来触发我的进程。 java中的调度也适用。 但是使用crontab,你不会一直运行java进程,而只是为了你的任务

Linux有服务包装器,但它通常最简单

nohup java {etc} 2>&1 > my.log & 

可以从cron(8)开始。 这当然假定您的任务在某个时间终止。 如果你想在系统启动时启动它并让它运行,那么,将一个启动脚本放入/etc/init.d/,并带有指向正确运行级别启动目录的链接,并在内部使用像Quartz这样的库来安排其工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM