在多个过程之间共享单例实例

时间:2020-08-16 03:59:36

标签: javascript node.js telegraf

我有一个电报机器人,其中的连接是通过类实例创建的。

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的新实例。

请,如果有人可以给我一些启示。我花了几个小时试图找到解决方案,但是我没有主意。

1 个答案:

答案 0 :(得分:0)

据我所知,您可以同时使用lockfilenode-cache来实现您想要的;

通过此操作,您可以在其他进程正在使用文件时对其进行同步和锁定,以获取更多信息,您可以参考此链接 How to Synchronize object between multiple instance of Node Js application

相关问题