codecamp

Quartz配置RMI设置

不需要任何主要属性,并且都具有“合理的”默认值。当通过RMI使用Quartz时,您需要启动Quartz实例,并将其配置为通过RMI“导出”其服务。然后,您可以通过配置Quartz调度程序将其工作“代理”到服务器来创建客户端到服务器。

某些用户在客户端和服务器之间遇到class可用性(即Job类)的问题。要解决这些问题,您需要了解RMI的“代码库”和RMI安全管理器。您可能会发现这些资源有用:

对RMI和代码库的一个很好的描述:http : //www.kedwards.com/jini/codebase.html。重要的一点就是要意识到“代码库”是由客户使用的!

有关安全管理员的快速信息:http : //gethelp.devx.com/techtips/java_pro/10MinuteSolutions/10min0500.asp

最后从Java API文档中阅读RMISecurityManager的文档。

Property NameRequired
Default Value
org.quartz.scheduler.rmi.export没有false
falsefalseorg.quartz.scheduler.rmi.registryHost没有'localhost' 
org.quartz.scheduler.rmi.registryPort没有1099
org.quartz.scheduler.rmi.createRegistry没有'never'
org.quartz.scheduler.rmi.serverPort没有随机
org.quartz.scheduler.rmi.proxy没有false

org.quartz.scheduler.rmi.export

如果您希望Quartz Scheduler通过RMI作为服务器导出本身,则将“rmi.export”标志设置为true。

org.quartz.scheduler.rmi.registryHost

可以找到RMI注册表的主机(通常是“localhost”)。

org.quartz.scheduler.rmi.registryPort

RMI注册表正在侦听的端口(通常为1099)。

org.quartz.scheduler.rmi.createRegistry

根据您希望Quartz如何创建RMI注册表,设置'rmi.createRegistry'标志。如果您不希望Quartz创建注册表(例如,如果您已经有一个外部注册表运行),请使用“false”或“never”。如果您希望Quartz首先尝试使用现有的注册表,然后回到创建一个注册表,请使用“true”或“as_needed”。如果您希望Quartz尝试创建一个注册表,然后回到使用现有的注册表,请使用“always”。如果创建注册表,它将绑定到给定的“org.quartz.scheduler.rmi.registryPort”属性中的端口号,而“org.quartz.rmi.registryHost”应为“localhost”。

org.quartz.scheduler.rmi.serverPort

Quartz Scheduler服务将绑定并侦听连接的端口。默认情况下,RMI服务将“随机”选择端口,因为调度程序与RMI注册表绑定。

org.quartz.scheduler.rmi.proxy

如果要连接(使用)远程服务的调度程序,则将“org.quartz.scheduler.rmi.proxy”标志设置为true。您还必须指定RMI注册表进程的主机和端口 - 通常是“localhost”端口1099。

在同一个配置文件中为'org.quartz.scheduler.rmi.export'和'org.quartz.scheduler.rmi.proxy'指定一个'true'值是没有意义的 - 如果你这样做,'export '选项将被忽略。如果您没有通过RMI使用Quartz,则“export”和“proxy”属性的值“false”当然是有效的。
Quartz插件配置
Quartz配置RAMJobStore
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }