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

cqoc49vn  于 2023-01-24  发布在  Java
关注(0)|答案(6)|浏览(123)

我需要每天在特定的时间在linux服务器上运行一段java代码。
现在我在Ubuntu桌面上测试它,从终端运行它,它的功能正常,符合要求。对于调度,我使用了here中的库。
在实际的服务器上,将其作为进程运行的正确方法是什么?
我的意思是,在我的桌面上,我从终端运行代码,指定一个接近当前时间的时间,第一次测试它,然后停止它(^Z)。
在服务器上将它推到后台会是一个正确的方法吗?我相信一定有更好的方法来实现这一点。
谢谢

kdfy810k

kdfy810k1#

cron中运行它,就像(大部分)在命令行中运行一样,最简单的方法可能是将它 Package 在一个shell脚本中,设置适当的环境变量。

o0lyfsai

o0lyfsai2#

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

ttvkxqim

ttvkxqim3#

通常在J2EE应用程序中配置Quartz Schedular
Quartz是一个功能齐全的开源作业调度服务,可以与几乎任何Java EE或Java SE应用程序集成或一起使用-从最小的独立应用程序到最大的电子商务系统。Quartz可以用于创建简单或复杂的调度,以执行数十个、数百个甚至数万个作业;任务定义为标准Java组件的作业,这些组件实际上可以执行您对其进行编程以执行的任何操作。Quartz Scheduler包括许多企业级功能,如JTA事务和群集。

c86crjj0

c86crjj04#

我会在linux机器上使用crontab来触发我的进程。在java内部调度也可以工作。但是使用crontab你不会有一个java进程一直运行,而只是为了你的任务

hi3rlvi2

hi3rlvi25#

Linux也有服务 Package 器,但它通常最简单,只需

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

cygmwpex6#

可以从cron(8)启动它,当然这是假设你的任务在某个时候终止,如果你想在系统启动时启动它,并让它运行,那么,在/etc/init.d/中放置一个启动脚本,并链接到正确的运行级启动目录,在内部使用一个像Quartz这样的库来安排它的工作。

相关问题