我正试图让JBoss中的调度程序工作为5。
到目前为止,我已经创建了自己的MBean(它可以工作),我创建了这样的调度程序:
<mbean code="org.jboss.varia.scheduler.Scheduler"
name=":service=Scheduler,name=SchedulableMBeanExample">
<depends>user:service=Print</depends>
<attribute name="StartAtStartup">true</attribute>
<attribute name="SchedulableMBean">user:service=Print</attribute>
<attribute name="SchedulableMBeanMethod">print(java.lang.String)</attribute>
<attribute name="InitialStartDate">NOW</attribute>
<attribute name="SchedulePeriod">10000</attribute>
<attribute name="InitialRepetitions">10</attribute>
<attribute name="FixedRate">true</attribute></mbean>
它有效,但主要问题是如何指定我想作为参数传递给我的方法的字符串?
我已经搜索了但是我发现的唯一更接近的是这个属性:“SchedulableArguments”但这只适用于构造函数。
感谢您的帮助。
劳伦。
答案 0 :(得分:0)
在JBoss中安装MBean后,您可以通过JBoss jmx-console配置MBean参数,以配置JBoss。
请参阅JBoss wiki的这篇文章:ExampleHelloWorldService
答案 1 :(得分:0)
你已经到了一半;你有正确的属性 - SchedulableMBeanMethod
- 它允许参数列表,但只包含特定参数。根据{{3}},您的参数选项为:
通知将被定时器通知实例(javax.management.Notification)取代
DATE将被通知调用的日期替换(java.util.Date)
将被剩余重复次数(长)替换的重复
SCHEDULER_NAME将被调度程序的ObjectName替换
Scheduler将设置为null的任何完全限定的类名。
如果您需要传递任何其他内容,我认为您最好的选择是为您的mbean添加一个方法来计算&amp;将参数传递给您的工作职能。
猜测您要打印当前日期,可以设置:
<attribute name="SchedulableMBeanMethod">scheduledPrint(DATE)</attribute>
定义scheduledPrint
以格式化日期字符串并调用print
方法。