我有一个简单的DropWizard服务,我喜欢REST API来启动长时间运行的处理任务 - 包括CPU和I / O绑定。 REST调用不会等待任务完成,通过轮询/长轮询/ Web套接字会发生通知。
目前,如果我能在Dropwizard中执行此操作并将所有内容保存在单个可部署的JAR中,我更愿意。我有什么选择?
更新:我感兴趣的是我在Dropwizard中运行长时间运行任务的选项,部署为没有外部依赖关系的单个jar。只是产生一个新线程?假设这样的请求很少,它可能会有效,但应该有更好的选择。
答案 0 :(得分:12)
您可能希望使用托管资源:
http://www.dropwizard.io/1.0.5/docs/manual/core.html#managed-objects
设置线程池。然后,您的初始请求可以将消息推送到队列。您的线程池可以从队列中提取消息并异步处理它们。
您可以提供一个额外的端点,以便客户端可以获取异步过程的当前状态。