我有一个电报机器人,其中的连接是通过类实例创建的。
class Bot {
public bot;
constructor() {
this.bot = new TelegramBot();
}
}
export default Bot;
然后我有另一个文件,用于创建机器人实例并导出,以便可以导入它并在其他文件上使用它。
import bot from './bot';
const botInstance = new Bot();
export default botInstance;
例如,如果我想对该文件中的该机器人实例执行某些操作:
import botInstance from './botInstance';
botInstance.sendMessage(12345, 'hello!');
所有这些都是在不同的节点处理(不同的文件)之间发生的,每种处理都通过导入botInstance.js
并对其进行处理来与机器人进行自己的逻辑处理。
例如:
node src/proccess1.js
node src/queue.js
问题:当我运行多个进程时,它们只是冲突而杀死了该机器人,因为它们正在初始化一个新的机器人并在导入它的同时运行。他们彼此没有创建一个机器人实例并共享它,而是彼此创建了一个实例。
我的问题是:我如何与所有不同的过程/文件共享同一实例,而不必每次都创建类Bot
的新实例。
请,如果有人可以给我一些启示。我花了几个小时试图找到解决方案,但是我没有主意。
答案 0 :(得分:0)
据我所知,您可以同时使用lockfile和node-cache来实现您想要的;
通过此操作,您可以在其他进程正在使用文件时对其进行同步和锁定,以获取更多信息,您可以参考此链接 How to Synchronize object between multiple instance of Node Js application