繁体   English   中英

确保在socket.io中一次仅触发一个事件处理程序实例

[英]Make sure only one instance of event-handler is triggered at a time in socket.io

我正在尝试构建一个调用python脚本的节点应用程序(需要花费大量时间来运行)。用户本质上选择参数,然后单击运行以触发socket.on('python-event')中的事件,然后运行python脚本。我正在使用sockets.io使用从python获取的stdout流向用户发送有关python程序状态的实时数据,但是我面临的问题是,如果用户两次单击运行按钮,则事件处理程序触发两次并运行2个破坏stdout的python脚本实例。如何确保一次只发生一次事件触发,如果发生新的事件触发器,它将杀死先前的实例以及stdout流,然后运行python脚本的新实例使用更新的参数。我尝试使用socket.once(),但它只允许事件每次连接触发一次。

我将使用作业队列来执行此类工作,将每个作业的信息存储在队列中,以便您可以取消它并获取其状态。 您可以使用诸如kue之类的节点模块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM