当前位置: 首页 > 面试题库 >

在node.js中长时间运行的计算

姜景辉
2023-03-14
问题内容

我正在用node.js编写游戏服务器,某些操作涉及服务器部分的大量计算。在运行这些计算时,我不想停止接受连接-
当node.js不支持线程时,如何在后台运行它们?


问题答案:

我个人不能保证任何一种,但是如果您热衷于进行工作,那么节点模块页面上列出了针对节点的WebWorkers API的几个独立实现。 :

  • http://github.com/cramforce/node-worker
  • http://github.com/pgriess/node-webworker

乍一看,第二个看起来更成熟,并且它们都可以让您进行线程编程,但是它基本上是参与者模型,因此都通过消息传递来完成,并且您不能拥有共享的数据结构或任何东西。

同样,出于其价值,node.js团队最终打算在本机上精确地实现此API,因此,即使这些工具不是完美的,它们也可能是一个不错的权宜之计。



 类似资料:
  • 我在context.xml文件中定义了一个Spring调度任务,它每分钟运行一次。该任务调用postgres存储过程。存储过程运行时可以持续一分钟以上。如果当前运行没有完成,spring框架会调用相同的调度程序吗?谢谢,

  • 问题内容: 我有一个“长期运行的”清理行动,我需要执行我的。做这个的最好方式是什么? 如果我使用a 这样做,我将立即返回;但是线程引用发生了什么?我正在寻找有关此处需要了解的任何影响/陷阱/绊网的建议,因为我认为即使活动被销毁,该流程仍将继续存在。 背景: 我在我的应用程序中使用JmDNS。当用户使用完我的应用程序后,我想清理JmDNS实例。我使用类方法进行此操作。但是,此方法需要 5秒钟以上 才

  • 每个人在最新的更新之后,Studio在运行应用程序之前已经运行了很长时间(3-40分钟)“运行Gradle Build”。如何治疗?当前Studio版本:1.3。2.

  • 问题内容: 我有一个运行长时间运行的作业的Web服务(大约几个小时)。我正在使用Flask,Gunicorn和nginx进行开发。 我正在考虑做的事情是拥有一条需要很长时间才能完成的路由,调用一个创建线程的函数。然后,该函数将向路径返回一个GUID,并且路径将返回一个URL(使用GUID),用户可以使用该URL来检查进度。我正在将线程设为守护程序(thread.daemon = True),以便如

  • 问题内容: 说我长时间运行更新查询 some_table中的modification_time的值是什么?它们是相同还是不同(例如,执行查询花了2天的时间)。 如果它们不同,如​​何编写此查询以使它们都相同? 问题答案: 它们都是一样的,因为NOW()在查询开始时被锁定了。 答案太短了吗? 好的,更多信息有关NOW()的MySQL参考 NOW()返回一个 恒定时间 ,该时间指示该语句 开始执行的时

  • 每当我开始或运行我的项目时,gradle build运行从未停止,我尝试创建新的项目,但没有任何事情发生。有些项目工作得很好,但有些不是,而且永远在梯度构建运行中。而且,每当我打开项目时,这个cmd appt.exe文件就会打开。