草庐IT

多任务

全部标签

java - Java中用于处理任务的并发和可扩展数据结构?

对于我当前的开发,我有许多创建Tasks的线程(Producers)和许多使用这些Tasks的线程(消费者)每个Producer都由一个唯一的名称标识;Tasks由以下部分组成:其生产者的名称一个名字数据我的问题涉及(生产者)和(消费者)使用的数据结构。并发队列?天真地,我们可以想象Producer用Tasks填充一个并发队列,然后(consumers)读取/消费Tasks存储在并发队列中。我认为这个解决方案更适合扩展,但有一个案例是有问题的:如果Producers非常快速地创建两个名称相同但数据不同的Tasks(任务T1和T2同名但T1有数据D1,T2有数据D2),理论上有可能按照T

java - 在 Java 中,如何等待所有任务,但在出现第一个错误时停止?

我有一系列并发任务要运行。如果其中任何一个失败,我想打断它们并等待终止。但假设它们都没有失败,我想等待它们全部完成。ExecutorCompletionService似乎几乎是我在这里想要的,但似乎没有办法判断我的所有任务是否已完成,除非单独计算任务数量。(请注意,ExecutorCompletionService的Javadoc中的两个示例都跟踪任务的计数“n”,并使用它来确定服务是否完成。)我是不是忽略了什么,还是我真的必须自己编写这段代码? 最佳答案 是的,如果您使用的是ExecutorCompletionService,则确

java - Wicket:如何处理长时间运行的任务

我设置了一个Wicket+Hibernate+SpringWeb应用程序,它涉及收集一些数据(生成并返回一些文件)、将其存储在数据库中、创建一些图像并将所有这些显示在网页上。这一切都适用于短期运行,但有时收集数据(涉及一些远程数字运算)会花费太长时间(20分钟以上)并超时。我尝试使用两种方法解决此问题,但它们都显示出一些问题。第一种方法是使用AjaxLazyLoadPanels并在getLazyLoadComponent中执行所有操作。这对于短时间运行效果很好,但对于20分钟以上的运行,LazyLoadComponents将由于超时而无法加载(这里很矛盾)。第二种方法涉及创建一个添加了

java - 谷歌应用引擎 (Java) 任务队列 API : how to query number of running/pending tasks?

是否可以通过编程方式查询任务队列API以查看当前有多少任务正在执行/待处理?我在API中看不到任何执行此操作的方法,因此我求助于在数据存储区中创建对象来表示排队的任务。运行时,任务会从数据存储中删除相应的条目。如您所想,这很容易不同步。实际上,如果能够简单地计算给定队列名称的队列中的任务数量,我会非常高兴。 最佳答案 遗憾的是,没有可用于获取有关任务队列的信息的API。但是,我相信团队在未来会考虑到这一点(一个用于获取我们当前在仪表板上看到的统计信息的编程接口(interface),例如任务计数)。

java - 调用包含 hbm2ddl 任务的 ant 脚本时,Runtime.exec 会卡住吗?

为了启动一个ant脚本,我使用java.lang.Runtime类的exec方法,如下所示:Processprocess=Runtime.getRuntime().Exec(JAVA_HOMEANT_HOME-jar/lib/ant-launcher.jar-BuildFilefile.xml);这个方法,尽管看起来很简单,但是它带来了几个问题,在javadoc中描述如下:BecauseSomenativeplatformsProvideonlylimitedbuffersizeforstandardinputandoutputstreams,failuretopromptlywrit

java - 可以按优先级指定 Eclipse 任务标签颜色吗?

这是专门针对EclipseIDE的。我知道可以通过以下方式编辑任务标签的颜色(和字体等):Preferences->Java->Editor->SyntaxColoring->Comments->TaskTags但我想做的是为不同的任务标签优先级定义不同的颜色。例如,TODO是Normal优先级,所以应该是蓝色;而FIXME是高优先级,所以应该是红色的。这可能吗?如果是,怎么办?编辑:这是在Java编辑器本身中进行的。 最佳答案 目前还不可能-配置(在General→Editors→TextEditors→Annotations下)

java - 如何依赖 Gradle 中的所有 *compile 和 *testCompile 任务

我想在animalSniffer插件第一个任务依赖于所有sourceSets中所有生产类(Java、Groovy、Scala)的编译,第二个任务依赖于所有sourceSets中所有测试类的编译(可能分开test和集成测试).我不想依赖于*classes任务,因为*classes任务应该依赖于animalSniffer任务(检测Java版本API不兼容编译后可以停止构建)。在Gradle中有没有比检查AbstractCompile任务名称的实例是否以“compileTest”开头更好的方法来实现这一点? 最佳答案 您可以使用tasks

java - executorService.scheduleAtFixedRate 永远运行任务

我希望任务在1分钟的间隔后永远运行。为了完成我在中写下的任务publicvoidpoll(){ScheduledExecutorServiceexecutorService=Executors.newScheduledThreadPool(1);ScheduledFuturefiles=executorService.scheduleAtFixedRate(newRunnable(){@Overridepublicvoidrun(){Stringpath="/Desktop/PNL/Test";ListfilesPaths=newArrayList();Filefolder=newFi

java - Apache Storm Bolt 任务在一段时间后未收到消息

我们有一个Storm拓扑,其中配置了一个spout和两个bolts。Spout不断地从数据库中查询数据并将元组发送到第一个bolt进行一些处理。第一个bolt进行一些处理并将元组发送到第二个bolt,第二个bolt调用第三方网络服务并发送数据。所以,一段时间后发生了什么,最后一个bolt没有得到任何元组,如果我们重新启动拓扑它工作正常。这里只有最后一个bolt有问题。其他spout和firstbolt运行良好,我没有使用acking框架。在这种情况下,我只配置了一个worker`。TopologyBuilderbuilder=newTopologyBuilder();builder.s

java - 在 Java EE 5 (JBoss) 平台上启动计划任务的正确方法是什么?

我需要运行一个简单的计划任务,每200毫秒启动一次并做一些简单的事情。Executors.newSingleThreadScheduledExecutor()是在JBoss上获取预定执行程序服务的正确方法吗?据说不建议在JavaEE平台上生成非托管线程。看起来这个线程将是一个非托管线程。另一方面,我不想为这么简单的事情声明MBean等。编辑有org.jboss.resource.work.JBossWorkManager但我找不到计划工作的例子。 最佳答案 调用Executors.newSingleThreadScheduledEx