【发布时间】:2020-12-05 12:51:43
【问题描述】:
我有一个电报机器人,它通过类实例创建连接。
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 的新实例。
请,如果有人可以给我一些启示。我花了几个小时试图找到一个解决方案,但我没有想法。
【问题讨论】:
标签: javascript node.js telegraf