1

Apache Felix Event Admin Implementation felix->configuration 中的标准超时时间 为 5000 毫秒。现在如何允许一个或多个事件处理程序花费更长的时间(以编程方式愉快)?

4

2 回答 2

3

如果您不希望您的事件处理程序被列入黑名单,您可以将事件作为作业执行。作业不受黑名单的约束,并保证运行。有关从事件处理程序处理作业的更多信息,请参阅http://experiencedelivers.adobe.com/cemblog/en/experiencedelivers/2012/04/event_handling_incq.html和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)用于执行您的 JobProcessor。

于 2013-10-23T01:36:36.633 回答
1

您可以通过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 建议的那样)来完成缓慢的工作。

于 2013-10-23T07:36:11.567 回答