Node.js 多线程程序

2024-06-25

我编写了一个 node.js 脚本来从交易所获取一些价格。它看起来像这样:

async function main() {
  async function func() {
    var start_time = performance.now();
    for (let route of routes) {
      var result_amount = await calc(route, amount_wei);
          if (result_amount[5] > amount_start * 1) {
              console.log("Good Trade");
    }
  while (true) {
     await func();
  }
}

一条路线(路线中的路线)如下所示:

[
    "quick / sushi - 1x1",
    token_Address_usdc,
    token_Address_dai,
    token_Address_usdc,
    "-",
    "-",
    "USDC - DAI - USDC",
  ]

因此,如果我在快速交换上将 usdc 交换为 dai,首先我会获取输出。然后在 sushiswap 上从 dai 到 usdc。我将输出保存在数组中(result_amount)并将其返回给主程序(现在将结果与起始金额进行比较)。

我确实有大约 10 条交易路线,程序需要大约 20 秒,因此每条路线需要 2 秒。 这些路由是绝对独立的,所以应该可以同时获取所有路由,对吗? 我读过一些关于多线程的内容workers,但我不得不说,我没听懂。有人可以帮我解决这个问题吗?

谢谢


重要的是要了解 Node.js 通常是单线程而不是多线程。尽管异步操作有时会给人并行的印象,但这并不是必需的。这意味着,仅仅因为操作是异步的,并不意味着它必须在单独的线程中运行。

这些路由是绝对独立的,所以应该可以同时获取所有路由,对吗?

这取决于,最简单的情况是完全独立,其中所述请求的结果不与其他获取的结果结合使用。

你确实没有提供太多细节,所以实际上不可能回答你的问题。

不过,我可以建议的是:尽可能避免多线程。

控制AltDel https://stackoverflow.com/a/73901217/2005038的答案是一个很好的起点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js 多线程程序 的相关文章

  • 如何在 Bootstrap 中将单选按钮设置为“选中”? [复制]

    这个问题在这里已经有答案了 我使用 Bootstrap 按钮作为单选按钮 http getbootstrap com javascript buttons http getbootstrap com javascript buttons 这
  • .NET 服务是否表现出线程敏捷性?

    与以下问题相关this https stackoverflow com questions 657735 how is asp net multithreaded and this https stackoverflow com quest
  • 使用核心 Node.js 进行会话管理,无需 Express.js

    如何在核心 Node js 非express js 项目中处理 创建用于服务器端会话管理的中间件 我可以找到基于 Express 的项目的模块 但不能找到核心 Node js 的模块 请向我推荐任何用于非express js 项目的模块或中
  • 在 Javascript 中隐藏按钮

    在我最新的程序中 有一个按钮 单击时会显示一些输入弹出框 这些框消失后 如何隐藏按钮 You can set its visibility财产 http www w3schools com cssref pr class visibilit
  • JQuery mouseover 函数多次触发

    我很长时间以来一直使用这种方法来为整个类 按钮等 设置事件 div bigButton mouseover function this style backgroundColor dfdfdf 然而 在进行一些测试时 我刚刚注意到 当将鼠标
  • 从数组中删除空字符串,同时保持记录而不循环?

    这个问题在这里被问到 从数组中删除空字符串 同时保留非空字符串的索引记录 https stackoverflow com questions 18113243 remove empty strings from array while ke
  • 抓取 Shopee API v4

    我有一个最终项目 其中我想要检索的数据是通过在shopee上抓取数据来获取的 但是当我在隐藏的API上抓取shopee时遇到问题 当我在Insomnia脚本上尝试时 脚本会运行 但是当我尝试时在本地或 google colab 脚本上 这是
  • 解析字符串:提取单词和短语 [JavaScript]

    我需要在以空格分隔的术语列表中支持确切的短语 用引号引起来 因此 用空格字符分割相应的字符串已经不够了 Example input foo bar lorem ipsum baz output foo bar lorem ipsum baz
  • 为什么我的数据没有存储到我的 Firebase 实时数据库中?

    我正在尝试为网络应用程序制作一个注册页面 这会将数据发送到 firebase 数据库 我已阅读官方 firebase 文档并按照说明写入数据 但什么也不会写 在我的数据库控制台中 它显示的所有内容都是空 而不是我的数据 我没有收到控制台错误
  • Javascript - HTML Canvas 上的 Gecko 边框半径自适应(CSS border-radius)

    我试图弄清楚如何将 border radius css 属性的行为重现到 HTML 画布中 所以我已经在 J avascript 中做了一些事情 以便使用特定的半径 对于每个角 来计算给定形状的正确边界 如果需要的话 这是上一个问题 Gec
  • JavaScript 模板文字稍后替换变量(在知道值之前)

    是否可以在已知值之前以某种方式使用模板文字 JS 模板文字的每个演示都如下所示 var name John var s Hello name 但在现实世界中 模板是在我们知道变量值之前定义的 某处定义了模板 在页面加载时 var s Hel
  • SwingWorker 和 Executor 的区别

    我正在使用 SwingWorker 在我正在制作的应用程序上执行一些重负载任务 虽然今天我遇到了 Executor 类和这个例子 Executors newCachedThreadPool execute new Runnable publ
  • 多个引导模式的滚动问题

    我有一个带有大量信息的模态页面 因此您需要滚动 该模式包含指向第二个模式的链接 When I 打开模态 1 单击链接打开模式 2 模式 1 保持在后台 然后关闭模式 2 以便我回到模式 1 modal 1 失去滚动 仍然有一个滚动条 但它不
  • 将json数据从servlet传递到jsp到js文件

    我得到了这个创建 JSON 数据的 servlet 我想将此数据传递到一个 jsp 页面 该页面应该通过 InfoVis 工具包显示数据 servlet java JSONObject json new JSONObject JSONArr
  • 如何使用 JQuery 创建新的 img 标签,并使用 JavaScript 对象中的 src 和 id?

    我从基本意义上了解 JQuery 但对它绝对是新手 并且怀疑这很容易 我在 JSON 响应中获得了图像 src 和 id 转换为对象 因此在 responseObject imgurl 和 responseObject imgid 中获得了
  • Promise链基本问题

    我正在尝试理解 Promise 我创建了一些有效的承诺链 而另一些则无效 我已经取得了进步 但显然缺乏基本概念 例如 以下承诺链不起作用 这是一个愚蠢的例子 但说明了问题 我正在尝试在链中使用 Node 的函数 randomBytes 两次
  • 检查redis是否正在运行->node js

    我只是想知道 在 NodeJS 进程开始时 Redis 是否启动 因此用户会话是否会被存储 这是我目前所拥有的 var session require express session var RedisStore require conne
  • 如何从索引文件迭代多个导入的模块

    我有一个名为Polygons我在那里创建了一个index jsfile 以导出目录中的所有文件 它看起来像这样 export default as europe from europe export default as northAmer
  • 从不同的线程访问对象

    我有一个服务器类 它基本上等待来自客户端的连接 在该类中 我创建了一个 NetworkStream 对象 以便能够从客户端接收字节 由于 NetworkStream Read 方法不是异步的 这意味着它将等到从客户端读取字节才能继续执行类似
  • ASP.NET MVC3 Ajax.ActionLink - 条件确认对话框

    我有一个 Ajax ActionLink 仅当满足某些条件 用户有未保存的更改 时 我才希望显示一个确认对话框 我创建了一个 JavaScript 函数 它根据需要显示确认对话框 并根据响应返回 true 或 false 我将其绑定到 Ac

随机推荐

  • Celery:与正在运行的任务交互/通信

    一个相关的 尽管不相同 问题出现在这里 与 celery 正在进行的任务交互 https stackoverflow com questions 30481996 interact with celery ongoing task 启动任务
  • sprintf 与 String.Format 的性能[重复]

    这个问题在这里已经有答案了 我正在比较 sprintf 用法的性能 并对我所看到的感到有点困扰 我测试了以下 4 个方法 将 ClassWithToString 的实例传递给每个方法 PrintInt 除外 它接收实际的整数值 type C
  • 来自heroku的https请求

    我想通过 https 协议从 vk com api 获取数据 像这样 var https require https https get https api vk com method users get access token glob
  • Jenkins 无法访问 java : localhost jenkins[807]: 启动 Jenkins bash: /usr/bin/java: 权限被拒绝

    我已经在centos 7上安装并配置了jenkins 我已经添加了有效的java路径即文件中的 usr bin java etc init d jenkins 以下是 java 路径详细信息 lrwxrwxrwx 1 root root 2
  • 未知类型名称“ssize_t”[重复]

    这个问题在这里已经有答案了 我目前遇到错误 未知类型名称 ssize t 我看了一下Linux中ssize t在哪里定义的 https stackoverflow com questions 55190317 where is ssize
  • 如何合并多个版本的gcda文件?

    我正在使用 gcov 来获取我的应用程序的覆盖范围信息 但是 我的应用程序有 3 个实例同时运行 创建了 3 个版本的 gcda 文件 有没有办法在我的覆盖信息文件中合并相同 gcda 文件的不同版本 我只想将覆盖范围信息作为一个实例 我刚
  • Java 扫描器有NextLine NoSuchElementException?

    我正在尝试逐行读取一个大型 csv 文件 以查找其中字符串出现的次数 这是执行此操作的代码 public int getOffset File file String searched throws FileNotFoundExceptio
  • 错误:没有编译器提供程序! DI 异常 Angular 2 测试

    使用 npm test 命令执行时 给定的单元测试会抛出错误 它表示存在 DI 异常 并显示错误消息 错误 没有编译器提供程序 import TestComponentBuilder from angular compiler testin
  • 在节点模块文件夹中编辑react npm模块的代码

    是否可以更改 module 文件夹中 npm 模块的代码 我认为这不是推荐的做法 还有其他方法可以实现这一目标吗 目前 我尝试更改模块目录中的代码 但更改似乎并不适用 提前致谢 当然你可以改变包的内容node modules因为它是标准化格
  • 统一的网格组合器

    你好 我正在使用这个人的脚本https www youtube com watch v wYAlky1aZn4 https www youtube com watch v wYAlky1aZn4组合网格 因为游戏运行不流畅时会出现 滞后 或
  • Apple Watch 表 - 前 4 行未出现

    我在添加行时遇到问题WKInterfaceTable在苹果手表上 奇怪的是 无论我做什么 前 4 行都显示为空 我尝试手动添加行并循环 没关系 我相信我的代码很好 因为第五行和其他行看起来都很好 发生的情况如下 进一步滚动 My code
  • 如何用R创建时间散点图?

    数据是一系列日期和时间 date time 2010 01 01 09 04 43 2010 01 01 10 53 59 2010 01 01 10 57 18 2010 01 01 10 59 30 2010 01 01 11 00 4
  • 如何在当前鼠标位置设置工具提示?

    I registered Hotkey Ctrl Space Hotkey message is sent to private void Hotkey press I want to show tooltip Hello at curre
  • 如何在 Swift 中按换行符分割字符串

    我有一个从文本文件中获得的字符串 文本文件 Line 1 Line 2 Line 3 我想将其转换为数组 每行一个数组元素 Line 1 Line 2 Line 3 根据文件的保存方式 字符串可能采用以下形式之一 string Line 1
  • 如何将参数传递给 PyQt 中的回调函数

    我的工具栏中有大约 10 个 QAction 这个数字在运行时会有所不同 它们都将执行相同的操作 但使用不同的参数 我正在考虑将参数作为属性添加到 QAction 对象 然后 QAction 的触发信号也会将对象本身发送到回调函数 以便我可
  • 主/详细信息应用程序中的导航项

    我使用 XCode 的 Master Detail 模板编写了一个 Master Detail 应用程序 启动应用程序后 主视图的导航按钮的标题只是 Master 现在我想重命名该按钮 但不幸的是我不知道如何访问该按钮 在appdelega
  • 为什么 Apache Spark 会读取嵌套结构中不必要的 Parquet 列?

    我的团队正在构建一个 ETL 流程 以使用 Spark 将原始分隔文本文件加载到基于 Parquet 的 数据湖 中 Parquet 列存储的承诺之一是查询将仅读取必要的 列条带 但我们看到意外的列被读取以获取嵌套模式结构 为了进行演示 下
  • 在 Laravel 5.2 中按 id 显示图像文件

    我有一个名为 files 的表 它保存与属性表相关的图像的名称 我试图使这些图像显示为以下关系 这是属性表的一部分 这是表文件及其与属性表的关系 我可以在控制器 PropertyController 的 show 方法中传递什么参数 目前我
  • IE 错误响应 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的 IE
  • Node.js 多线程程序

    我编写了一个 node js 脚本来从交易所获取一些价格 它看起来像这样 async function main async function func var start time performance now for let rout