我需要每天在特定的时间在linux服务器上运行一段java代码。现在我在Ubuntu桌面上测试它,从终端运行它,它的功能正常,符合要求。对于调度,我使用了here中的库。在实际的服务器上,将其作为进程运行的正确方法是什么?我的意思是,在我的桌面上,我从终端运行代码,指定一个接近当前时间的时间,第一次测试它,然后停止它(^Z)。在服务器上将它推到后台会是一个正确的方法吗?我相信一定有更好的方法来实现这一点。谢谢
kdfy810k1#
在cron中运行它,就像(大部分)在命令行中运行一样,最简单的方法可能是将它 Package 在一个shell脚本中,设置适当的环境变量。
o0lyfsai2#
您可以编写一个用于执行Java实用程序的shell脚本(可能需要添加类路径和其他环境变量),并将其放在crontab中。这里是快速crontab reference。
ttvkxqim3#
通常在J2EE应用程序中配置Quartz SchedularQuartz是一个功能齐全的开源作业调度服务,可以与几乎任何Java EE或Java SE应用程序集成或一起使用-从最小的独立应用程序到最大的电子商务系统。Quartz可以用于创建简单或复杂的调度,以执行数十个、数百个甚至数万个作业;任务定义为标准Java组件的作业,这些组件实际上可以执行您对其进行编程以执行的任何操作。Quartz Scheduler包括许多企业级功能,如JTA事务和群集。
c86crjj04#
我会在linux机器上使用crontab来触发我的进程。在java内部调度也可以工作。但是使用crontab你不会有一个java进程一直运行,而只是为了你的任务
hi3rlvi25#
Linux也有服务 Package 器,但它通常最简单,只需
nohup java {etc} 2>&1 > my.log &
cygmwpex6#
可以从cron(8)启动它,当然这是假设你的任务在某个时候终止,如果你想在系统启动时启动它,并让它运行,那么,在/etc/init.d/中放置一个启动脚本,并链接到正确的运行级启动目录,在内部使用一个像Quartz这样的库来安排它的工作。
6条答案
按热度按时间kdfy810k1#
在cron中运行它,就像(大部分)在命令行中运行一样,最简单的方法可能是将它 Package 在一个shell脚本中,设置适当的环境变量。
o0lyfsai2#
您可以编写一个用于执行Java实用程序的shell脚本(可能需要添加类路径和其他环境变量),并将其放在crontab中。
这里是快速crontab reference。
ttvkxqim3#
通常在J2EE应用程序中配置Quartz Schedular
Quartz是一个功能齐全的开源作业调度服务,可以与几乎任何Java EE或Java SE应用程序集成或一起使用-从最小的独立应用程序到最大的电子商务系统。Quartz可以用于创建简单或复杂的调度,以执行数十个、数百个甚至数万个作业;任务定义为标准Java组件的作业,这些组件实际上可以执行您对其进行编程以执行的任何操作。Quartz Scheduler包括许多企业级功能,如JTA事务和群集。
c86crjj04#
我会在linux机器上使用crontab来触发我的进程。在java内部调度也可以工作。但是使用crontab你不会有一个java进程一直运行,而只是为了你的任务
hi3rlvi25#
Linux也有服务 Package 器,但它通常最简单,只需
cygmwpex6#
可以从cron(8)启动它,当然这是假设你的任务在某个时候终止,如果你想在系统启动时启动它,并让它运行,那么,在/etc/init.d/中放置一个启动脚本,并链接到正确的运行级启动目录,在内部使用一个像Quartz这样的库来安排它的工作。