我在尝试开发最简单的 jBilling 预定插件时遇到了一个奇怪的问题。我想制作一个每分钟执行一次的插件,但会运行更长的时间。我需要这个来了解 jBilling 将如何以这种方式运行 - 只运行一个插件实例或每分钟启动一个新实例。所以我编写了插件(见下文)并使用 cron_exp = "* * * * " 安装它(我还尝试了 " 0-23 * * *" 和其他变体)。但是现在,当 jBilling 启动时,我在日志中出现以下错误:
2013-10-28 16:28:26,215 调试 [com.sapienter.jbilling.server.pluggableTask.admin.PluggableTaskManager] 应用任务 com.sapienter.jbilling.server.MyPlugins.testLongTimeRunningPlugin 2013-10-28 16:28:26,217 调试[com.sapienter.jbilling.server.pluggableTask.admin.PluggableTaskManager] 创建 com.sapienter.jbilling.server.MyPlugins.testLongTimeRunningPlugin 的新实例 2013-10-28 16:28:26,225 WARN [com.sapienter.jbilling.server .util.Bootstrap] 无法安排可插入任务 [com.sapienter.jbilling.server.MyPlugins.testLongTimeRunningPlugin] 2013-10-28 16:28:26,225 调试 [com.sapienter.jbilling.server.util.Bootstrap] 启动作业调度器
所以我想知道为什么它不能被安排,我该如何解决它?这是代码:
public class testLongTimeRunningPlugin extends AbstractCronTask {
public static final String taskName = testLongTimeRunningPlugin.class.getCanonicalName();
private static final Logger LOG = Logger.getLogger(draftAPIgetProductCategories.class);
private static final int time = 5;
@Override
public String getTaskName() {
return taskName;
}
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
LOG.debug("Starting and waiting for " + time + " minutes");
try{
TimeUnit.MINUTES.sleep(time);
LOG.debug("Completed");
}catch (InterruptedException e){
LOG.debug("Interrupted!");
}
}
}
`