问题标签 [gpars]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
56 浏览

grails - Groovy 演员表现奇怪

我有这段代码:

我这样开始:

问题是任务以随机顺序执行。它应该git clone像 repos.size() 一样多次运行该命令,但事实并非如此。它每次运行随机次数。

each循环应该作为单个任务在后台执行,似乎git clone命令是并行执行的。

0 投票
1 回答
196 浏览

java - 多线程网站解析器和内存不足问题

你好。我正在编写一个网站解析器,旨在快速实现多线程。我使用的外部库是:apache HTTP 客户端、Jsoup(用于 HTML 解析)和 GPars(用于消息驱动线程)。现在我将展示一些我正在尝试实现的概念

现在的问题是,虽然我限制了一些正在运行的作业,但我的代码不知何故内存不足(在代码中搜索 [1] 以查看位置)。也许您对如何解决它有任何想法。或者有一些类似任务的展示,因为我对整个应用程序设计的填写非常错误,也许我应该改变它?谢谢你。

0 投票
0 回答
114 浏览

groovy - GPars 的 Actor 示例中的“循环”一词是什么意思?

在下面的HelloWorld GPars 示例中,我们有这个词loop

如何确定,它是什么?如果我Ctrl click进去了,IntelliJ我什么也得不到。同时,如果我Ctrl click工作react,去GPars 中的方法 react

它也有loop方法。但两者都没有单一Closure 的论据。

我可以确定,loop这里调用了一些方法吗?

0 投票
2 回答
120 浏览

java - 异步运行方法并能够查看其状态的最简单方法是什么?

我想运行一个持久的操作并能够看到它的以下阶段:

1) 尚未运行

2) 运行

3) 完成好了

4) 异常结束

我写了下面的代码,看起来过于复杂。它使用三个类:WorkThreadPoolExecutorFutureTask<?>,其中Work是手写的。

同时,工作是部分复制FutureTask<?>功能(异常存储,这也是在内部完成的Future,但在内部是封闭的)。

问题是:有没有几行方法可以从 Java、Groovy、GPars、Apache 等的预定义类中做同样的事情?

编码:

0 投票
1 回答
225 浏览

groovy - GPars 语法不熟悉

我来自 Java 背景,同时学习 Groovy 和 Gradle,因为我的目的是另一个。:-/ 我也需要 GPars 的东西,因为速度和并行性是一个问题。无论如何,我看到了这个 GPars 示例,并且我有一些我认为是语言细微差别的问题,而不是图书馆问题,我还不明白。

我明白了ForkJoinPool pool ->..。为什么这两行不是这样用大括号括起来的。如果它只是一个可选的省略,似乎你会失去对范围的跟踪,比如分号:

是什么it?它是一个迭代器吗?是从哪里来it的?

.everyParallel据我所知,当一个对象从未被具有该功能的东西显式包装时,通过什么方式可以调用它?

0 投票
1 回答
138 浏览

groovy - GPars并行写入,所有文件何时写入?

所以如果我有一个看起来像这样的块:

什么时候所有文件都被写入、刷新并准备好在附加代码中使用?在End of eachParallel或 在End of withpool? ...或者是否需要特殊代码来管理这个?

0 投票
2 回答
294 浏览

groovy - GPars 是 Groovy 的一部分,但不在 API 文档中?为什么我不能导入?

http://www.gpars.org/guide/guide/gettingStarted.html#gettingStarted_downloadingAndInstalling

它说 GPars 已被合并到 Groovy 中。如果是这样,为什么我在 Groovy 的 API 文档中找不到它?为什么我的导入语句似乎不起作用?我在我的 Groovy 发行版中看到了这个库:

0 投票
1 回答
747 浏览

groovy - 使用 Groovy 的并发/并行数据库查询?

如何使用 Groovy 实现并发/并行数据库查询?

我想计算数据库(select count(*) from $TABLE)中所有表中的行数,并将计数写入单独的文件。

有些表有几百万行,这需要几分钟才能计算出来,而许多表没有行。我希望教 Groovy 分离每个计数请求,等待结果,抓取列表中的下一个表,等等。我将此功能添加到现有的可靠且有效的 Groovy 脚本中。

这是我到目前为止所拥有的:

`

上面的代码与基本要素配对。原始代码包括用户名和密码(这是唯一的区别)返回此错误:

0 投票
2 回答
1506 浏览

asynchronous - 使用 GPars 调度异步任务并立即返回

我想要一个分派异步任务并立即返回的方法。我不需要等待结果。我想要这样的工作:

在上述情况下,任务不会运行,因为没有调用 .get() ,但是,如果我执行 .get() ,该方法将不会返回 jobId 直到任务完成。

我怎样才能分派任务并仍然立即返回?

0 投票
0 回答
683 浏览

unit-testing - 在 gpars activeobject 方法中调用时,Spock 模拟似乎永远不会被调用

在我的代码中,我有两个类,一个称为 DynamicRule,另一个称为 AORule 的包装器,它为规则实例提供 GPARS activeObject 包装器。

DynamicRule 看起来有点像这样 - 使用一个名为 dynamicExecute 的方法

我有这个 AORule 的包装类,它使用 GPARS activeObject 来管理这样的DynamicRule rule引用状态,其中execute()方法调用 async activeObject 方法来触发对内部rule引用的操作

我一直在尝试编写一些测试来证明这对我自己有效并且它失败了。mockres我已经尝试对 dynamicRule 本身进行两个简单的测试,这很有效 - 我设置了期望并要求 Mock 调用闭包并测试该闭包对变量的副作用- 一切正常:

在我的第二个测试中,我设置了 Mock 并将其设置在 aorule.rule 实例上并设置了对 mock 的期望,aorule.execute()调用调用activeExecute()active 方法的方法,该方法调用我的 mock

这失败了 - 为什么没有在模拟上运行闭包,然后:断言测试失败。

我在这里包含了部分输出跟踪 - 你可以看到它aorule.execute()触发了 activeObject 方法,我可以看到日志跟踪activeExec : rule dump looks like - 但是在那之后它似乎都停止了,没有额外的跟踪输出(我期待看到价值val 例如),并且未调用存根闭包并且未设置 mockres - 测试失败

我一直在尝试跟踪这一点,或者在调试器中观看无济于事。我的存根关闭未触发 - 测试失败。

我刚刚尝试再次在调试器中观看,当我越过这条线时

调试器跳转到InternalActor.handleCurrentMessage()GPAR 中某处的错误处理程序。如果我将其更改为

我不明白这一点。也许我在做一些愚蠢的事情,但是我无法为我的代码编写测试来@ActiveMethod - activeExecute()使用 Mocks 测试代码(我试图通过手工制作的类等来做到这一点,并且无法让模拟测试工作。

如何正确纠正和运行测试?据我所知 - 当我在脚本(“实时”测试)中运行代码时,代码似乎做了我想做的事情,等等,但我无法进行单元测试来证明这一点

后记:这与 ActiveMethod 包装有关 - 不确定是什么

我在测试脚本中创建了两个虚拟包装器类,如下所示——一个不支持 ActiveObject,一个支持 ActiveObject——两者都调用dynamicExecute()嵌入规则的方法。AOWrappers 是@ActiveMethod

同一个脚本文件中的两个测试看起来像这样

当我运行测试时 - 第一个通过就好了,第二个失败并且我clos没有被调用。接下来我应该尝试什么?

澄清问题

我已经尝试并将其简化为单个 groovy 测试文件 - 正在测试类并且测试在同一个文件中,以便您可以希望看到发生了什么

需要注意的关键点是最后的测试。我在 Mock 上设置了期望运行输出闭包,这将更新mockres变量,我可以断言已在 then: 子句中设置。

当您调用@ActiveMethod execute()测试时,测试将像这样失败

这表明闭包调用没有设置 mockres。

如果您取消注释后面的 aowrule.exec() 行 - 然后exec()直接调用委托调用 - 不使用 ActiveMethod 使用的隐藏参与者。当您运行下一行时,正确调用了闭包并设置了 mockres。

所以这个问题有一些事情要做,它试图通过隐藏的演员来测试模拟是否有效@ActiveMothod

我认为实际上,如果只是作为脚本运行(在代码中真正使用),代码正在做我期望的事情。但是,当调用 ActiveMethod 时,我似乎无法编写证明预期行为的测试。

我是否必须做一些聪明的事情来使用 Mocks 为 GPAR 之类的异步代码编写 spock 测试 - 或者这是应该工作但没有工作的东西。