Java Dropwizard作为非阻塞任务执行组件

Java Dropwizard作为非阻塞任务执行组件,java,dropwizard,Java,Dropwizard,我正在评估我们生产系统的关键任务组件 我需要实现的是一个支持RESTful的命令行工具。几乎不需要提供RESTAPI,我主要需要与B2B的外部API系统通信,记录依赖项注入,以及一些非阻塞I/O操作,以获得最大性能 我的问题是,是否有人对生产系统准备好的特定框架和轻量级非阻塞操作(如Python上的芹菜)的替代解决方案有经验 最后,Dropwizard是否支持Java1.8 非常感谢您提前提供的帮助允许您在dropwizard中安排作业。github自述有更多示例,但这里有一个快速的提示: @C

我正在评估我们生产系统的关键任务组件

我需要实现的是一个支持RESTful的命令行工具。几乎不需要提供RESTAPI,我主要需要与B2B的外部API系统通信,记录依赖项注入,以及一些非阻塞I/O操作,以获得最大性能

我的问题是,是否有人对生产系统准备好的特定框架和轻量级非阻塞操作(如Python上的芹菜)的替代解决方案有经验

最后,Dropwizard是否支持Java1.8

非常感谢您提前提供的帮助

允许您在dropwizard中安排作业。github自述有更多示例,但这里有一个快速的提示:

@CronTrigger(cron = "0/5 * * * * ?")
public class SampleJob extends org.knowm.sundial.Job {
  @Override
  public void doRun() throws JobInterruptException {
    // Do something interesting...
  }
}
它所做的是在初始化dropwizard应用程序时,Sundail将访问并启动其调度程序。然后,您可以通过yaml、tasks、xml中的包配置任务。它注册的管理任务也可用于管理作业创建/触发/等

需要注意的是,dropwizard sundial包本身包含一组dropwizard核心和dropwizard util。很可能您会发现它与版本冲突,从而导致NoClassDefException或NoMethodFoundException。我的解决方案是从dropwizard Sundian中排除,并使用您自己的解决方案

    <dependency>
        <groupId>org.knowm</groupId>
        <artifactId>dropwizard-sundial</artifactId>
        <version>1.0.0.0</version>
        <exclusions>
            <exclusion>
                <groupId>io.dropwizard</groupId>
                <artifactId>dropwizard-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>io.dropwizard</groupId>
                <artifactId>dropwizard-util</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

Dropwizard本质上是一组打包在一起的框架。你可能想看看每一个。除非你算上Jetty,否则它没有非阻塞IO,但是你的描述听起来有点奇怪;如果您想调用RESTful API,则不需要dropwizard,它用于提供RESTful API。此外,非阻塞IO主要适用于高并发性。如果你调用高并发性的外部API,通常你会给它们定量。谢谢你的重播,是的,你是对的,我需要一些已经为我调整过的框架,如coda hale、logback等。我想知道它是否能够提供/帮助集成非阻塞IO基础设施。此外,我必须同时以最快的速度访问外部API,但我在目标端有时间限制,所以我不会停止访问。这无助于添加非阻塞IO,尤其是没有DI。另外,请相信我,如果您以高并发性尽可能快地命中它们,它将被定义。导致类似于DOS攻击的情况,并且无论如何也会降低总体性能,即使他们能够应付负载;i、 这样做没有什么好处。