我编写了一个 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(使用前将#替换为@)