我需要构建一个 Node.js API,对于调用它的每个不同用户,开始运行一些代码(一个简单的脚本,用于设置 Telegram 客户端、监听新消息并在此处执行一些任务)然后在后台持续运行。
到目前为止,我的想法是 a) 为每个 API 调用启动一个新的子进程,b) 为每个调用自动在云上部署脚本。 我认为第一个想法无法扩展,至于第二个想法我在这方面没有经验。
我搜索了十几个关键词,到目前为止还没有找到任何相关的内容。有什么方便的方法来实现这个吗?我可以向哪个方向搜索?
我期待任何提示
我不是节点开发人员,但作为程序员,你可以这样做:
当用户处于活动状态时,它会调用一个函数
此函数必须计算已经过去的秒数以匹配 24 小时(86400 秒 == 24 小时)并执行任务;
时间匹配时,程序停止
Node.js 只不过是一个事件循环 (libuv),其执行堆栈在 v8 (javascript) 上运行。该进程将继续运行,直到堆栈为空。
请记住,只有一个线程执行您的代码(事件循环),所有事情都将作为回调发生。
只要你在 Telegram 客户端设置一些监听器,node.js 就会等待新消息并执行相关监听器。 只需在每个 api 调用上实例化一个新客户端并监听它,无需向新进程发送垃圾邮件。
无论如何,如果你不限制并行客户端的数量或者在一段时间后不关闭它们(例如使用 setInterval()),你最终会导致内存不足。