我们正在使用基于插件的架构开发和企业应用程序。每个插件都实现了一个包含大量方法的契约。所有这些插件都在我们的核心系统运行时使用,并且他们的方法被永久地调用。所有这些调用必须是异步的,绝不会阻塞。
我们还为第三方开发人员提供了开发其插件的能力。问题是这个开发人员可能会实现一些不同步的方法(错误与否)。最糟糕的情况是这个方法将包含无限循环。
我们可以将调用放入单独的线程中,但经过几次调用后,这些循环将占用所有CPU时间并完全挂起系统。
有没有办法确保这些调用不会阻塞而且资源不严重? 附:我们可以在运行时删除任何插件,如果它是可疑的。