如何解决在多个过程之间共享单例实例
我有一个电报机器人,其中的连接是通过类实例创建的。
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
的新实例。
请,如果有人可以给我一些启示。我花了几个小时试图找到解决方案,但是我没有主意。
解决方法
据我所知,您可以同时使用lockfile和node-cache来实现您想要的;
通过此操作,您可以在其他进程正在使用文件时对其进行同步和锁定,以获取更多信息,您可以参考此链接 How to Synchronize object between multiple instance of Node Js application
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。