felix->配置中Apache Felix Event Admin Implementation
的标准超时为 5000 毫秒。现在如何允许一个或多个事件处理程序花费更长的时间(以编程方式愉快)?
事件处理程序被列入黑名单,可以将事件作为作业执行。作业不受黑名单限制,并保证运行。 有关从事件处理程序处理作业的详细信息,请参阅 http://experiencedelivers.adobe.com/cemblog/en/experiencedelivers/2012/04/event_handling_incq.html,以及用于执行 JobProcessor 的 http://sling.apache.org/apidocs/sling6/org/apache/sling/event/jobs/JobUtil.html#processJob (org.osgi.service.event.Event,%20org.apache.sling.event.jobs.JobProcessor)。
您可以通过 http://www.osgi.org/javadoc/r4v42/org/osgi/service/cm/ConfigurationAdmin.html 中所述的 ConfigurationAdmin 服务以编程方式更改任何 OSGi 配置
您需要要更改的配置的PID(OSGi管理控制台或shell将提供该PID)。使用 ConfigurationAdmin.getConfiguration(..) 检索相应的 Configuration 对象,并使用更改的属性调用 Configuration.update(...)。
话虽如此,提高事件黑名单超时通常是一个坏主意 - 需要很长时间才能运行的事件处理程序会阻止事情。使用单独的线程或作业(如 Chris Leggett 建议的那样)来完成缓慢的工作。