问题标签 [fiber]

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 回答
1536 浏览

meteor - 部署到 Digital Ocean,Ubuntu 14.04 时出现 Meteor Up 错误

使用 Meteor Up 在 Digital Ocean 上将 Meteor 项目部署到 Ubuntu 14.04(内核:Ubuntu 14.04 x64 vmlinuz-3.13.0-57-generic)实例时遇到问题。

mup setup运行良好,所以 mup.json 没有问题。

然后,当我跑步时,mup deploy我得到:

我可以看到问题出在 Fibers 上,但不知道为什么会失败。

有任何想法吗?谢谢。

0 投票
0 回答
219 浏览

asynchronous - 使用 Meteor.runAsync 时,“Meteor 代码必须始终在 Fiber 中运行”

使用 cassandra 和流星。

所以我用 Meteor.wrapAsync 包装了 Cassandra.client.execute (最后一个 arg 作为回调)

前几个插入工作,但在几个插入后(插入被定期调用)我得到:

[错误:Meteor 代码必须始终在 Fiber 中运行。尝试使用 Meteor.bindEnvironment 包装传递给非 Meteor 库的回调。]

更新:调试流星显示堆栈跟踪,异常从我在.onTimeout()上使用“cassandra-driver”的npm包开始:

0 投票
1 回答
43 浏览

python-2.7 - 在执行过程中停止绞合光纤

有很多方法可以创建 Python Twisted 光纤。例如,可以调用reactor.callWhenRunning(helloWorld). helloWorld()将执行,并且当helloWorld()返回时 Fiber 将停止执行。

如果在执行的中途helloWorld()我想停止纤程的执行而不影响其余纤程怎么办?我该怎么做?

如果执行在其内部helloWorld(),那么我可以简单地从该方法返回。但是,如果程序有 10 个嵌套调用深度怎么办?我将如何阻止光纤继续执行?我想我可以让所有 10 种方法立即返回,但是对于具有 1000 多种方法的大型程序来说,这将是非常困难的。

我可以提出一个例外。除非调用堆栈中的某些方法(除了反应器)捕获异常,否则这将起作用。

我可以做以下事情。但是,这会在 Twisted reactor 中增加大量待处理Deferred的 s 堆积。

还有其他解决方案吗?

注意:Python 2.6 解决方案将是理想的。

0 投票
2 回答
1151 浏览

javascript - 解锁 Meteor.logout 和 login

我在服务器端有两种方法,如下所示:

从客户端调用这些方法时(使用浏览器控制台),它们工作正常(foo等待 10 秒,然后bar立即工作):

但是,当有会话并且我们调用Meteor.logout(fn)时,回调 ( fn) 将在foo完成后等待。

我不想要那个。我希望该logout方法能够正常工作bar(不等待完成foo,而是立即工作)。

我怎样才能做到这一点?有没有办法解除封锁 logout或类似的东西?登录操作以相同的方式(当前)工作:它等待直到foo发送响应。

0 投票
1 回答
200 浏览

java - 在光纤 Quasar 之间传递消息

我正在使用类星体光纤来收听和处理QueueObjectChannel. 我不确定我应该使用什么对象作为光纤之间的消息队列。我遇到的问题是我不明白应该传递给QueueObjectChannel构造函数的内容。根据 javadoc,构造函数应该采用,QueueObjectChannel(co.paralleluniverse.strands.queues.BasicQueue<Message> queue, Channels.OverflowPolicy policy, boolean singleProducer, boolean singleConsumer)但这似乎违反直觉,因为我正在尝试构建实现BasicQueue.

我应该实现接口吗?

我对光纤间通信的理解完全关闭了吗?

0 投票
1 回答
187 浏览

multithreading - 如何让类星体纤维与 JSF 以最佳方式工作?

如何让 quasar 与 JSF 以最佳方式工作?我在 FiberHttpServlet 上创建了一个带有 Comsat Quasar 集成的 JSF 项目,但在数量上没有看到任何改进。

我的项目在这里:https ://github.com/sanketsw/Quasar_JSF_Demo

不幸的是,在从 JMeter 测试时,未发现 Fiber 对任何正面影响(服务器上限为 50 个线程,而 JMeter 测试运行 3000 个用户)。响应与 javax.faces.webapp.FacesServlet 完全相同,最多 500 个用户。对于 3000 个用户,请求失败的错误率更高,响应时间也明显高于正常的 FacesServlet 成功请求。

如果您碰巧在此线程上进一步工作并有更好的结果,请告诉我。或者请看看我是否在配置中犯了任何错误。

0 投票
0 回答
47 浏览

c++ - 在 dll 中的静态函数中构造对象会导致运行时挂起

这是带有名为 start() 的静态函数的函数的头文件

这是类文件,当我尝试初始化静态 FiberPool 指针时,代码停止打印。代码挂起并且不执行构造函数。(con_cout 是 std::cout 的自定义版本)

这是光纤池

这是输出:

在窗口 7 上使用 Visual Studio 2013。如果代码都在一个项目中,这将完美地编译和运行。但是当我有单独的项目时,问题就来了。在第二个项目中从我的 main 调用 Scheduler::start(..) 会产生编译然后停止执行的问题。

我没有收到调试器的错误消息,并且 Windows 不会尝试结束进程。我在核心 1 中的 CPU 始终处于最大使用率,此时程序中只有 1 个线程(主线程)。

我尝试过静态和动态链接,但都没有成功。通过动态链接,我设置了链接器并使用了 Dynamic __declspec( dllexport )。我也有参考资料和其他包含目录。我所谓的“库”中的所有其他代码都可以工作,除了这个。请注意,我没有使用关键字朋友。

0 投票
1 回答
97 浏览

multithreading - 如何将纤维传递给线程?

我想知道如何将纤维传递给线程?

我设法做到这一点的唯一方法是从shared.

但这似乎不对。我想我不完全理解shared.

我不得不将纤维投射到共享,因为没有它我不允许将它发送到线程。我不得不将它转换回光纤,因为我无法调用Fiber.call共享光纤。

Fiber将 a 传递给线程的正确方法是什么?

0 投票
1 回答
2511 浏览

fiber - 类星体平行宇宙示例

我是 Quasar 的新手,想知道是否有像下面这样的例子。或者即使有人可以指出我如何做到这一点的正确方向。

所以我需要做的是读取一个 json 文件。为每个索引创建一个新的 Fiber 并从 json 传递一些值。每个纤程都会根据 json 中的值创建一个执行函数。但根据值的不同,某些纤维可能需要更长的时间才能完成。将等待最多 5 秒完成。

我假设所有这些纤维都将并行运行。

这甚至可能吗?任何例子都会很棒。

0 投票
1 回答
696 浏览

ruby - 如何使用 Ruby 的 Fibers 实现并行任务?

我是纤维和 EventMachine 的新手,直到最近我在查看 Ruby 是否具有任何并发​​功能(如 go-lang)时才发现纤维。

对于使用 Fiber 的实际用例,似乎没有很多示例。

我确实设法找到了这个:https ://www.igvita.com/2009/05/13/fibers-cooperative-scheduling-in-ruby/ (从 2009 年回来!!!)

其中有以下代码:

这很棒,异步 GET 请求!耶!!!但是......我实际上如何异步使用它?除了创建包含 Fiber 之外,该示例没有任何内容。

据我了解(并且不了解):

async_fetch 在调用 f.resume 之前一直处于阻塞状态。

f 是当前的 Fiber,它是在 EventMachine.run 块中创建的包装 Fiber。

async_fetch 将控制流返回给它的调用者?我不确定这是做什么的

为什么包覆光纤最后有恢复?光纤是否默认暂停?

在示例之外,我如何使用纤程来表示,发出一堆由键盘命令触发的请求?

例如:每次我输入一封信时,我都会向谷歌提出请求或其他什么?- 通常这需要一个线程,主线程会告诉并行线程为每个请求启动一个线程。:-\

我是并发/纤维的新手。但他们是如此有趣!

如果有人能回答这些问题,那将不胜感激!!!