gpt4 book ai didi

node.js - 当 cron 在后台运行时,没有 Mongo 查询得到结果

转载 作者:可可西里 更新时间:2023-11-01 09:54:05 24 4
gpt4 key购买 nike

我一直将 NodeJS 作为服务器端,将 MongoDB 作为我们的数据库。它真的很适合一起使用。

现在我已将 node-schedule 库添加到我们的系统中,以调用像 cron-job 一样的函数。

该过程大约需要数小时才能完成。

我的问题是每当 cron 运行时,我站点的所有用户都得不到服务器的响应,即数据库被锁定。

坚持了一周的问题,需要好的解决方案来运行 cron,而不影响用户使用该网站。

最佳答案

通常,您会希望编写一个 worker 并在不属于您的服务器的不同入口点运行该 worker。您可以通过多种方式实现这一目标。

1) 在另一台服务器上编写一个worker来与你的数据库交互

2) 在与你的 api 交互的另一台服务器上编写一个 service worker

3) 使用相同的服务器,但设置一个 cronjob 来执行在指定时间执行工作的文件。

但是您不应该从您的服务器正在运行的同一个入口点执行此操作。您需要一个不同的执行文件。

你可以做一件事来运行它,它不会让你的服务器陷入困境,那将是你的 Node 调度触发器运行子进程。 https://nodejs.org/api/child_process.html

关于node.js - 当 cron 在后台运行时,没有 Mongo 查询得到结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44574304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com