Buen día.
Quisiera preguntar si existe una manera de llamar un bot hijo de manera dinamica… el contexto es que estoy desarrollando un Dispatcher. El bot padre identifica el tipo de evento y necesito ejecutar un bot hijo de forma dinámica según ese evento.
Por ejemplo:
- El evento es 365.
- Construyo una variable con el nombre del robot: BOT365.
- Quisiera ejecutar ese robot utilizando el valor de esa variable, sin tener que crear un IF con todos los bots posibles (son muchos bots)
Mis dudas son:
- ¿Es posible ejecutar un robot hijo utilizando una variable que contenga el nombre del bot?
- ¿Existe alguna función disponible desde un script de Python para ejecutar otro robot de forma dinámica?
- En caso de no ser posible, ¿cuál sería la mejor práctica para implementar este tipo de arquitectura en Rocketbot?
Agradezco cualquier orientación.
Buen día Nicolas, lo puede hacer de la siguiente manera, ocupando rocket.start()
rocket.start(name, database_path__=db_path, **kwargs), recuerda cambiar los parámetros por lo que corresponda según los datos del bot a llamar. Si no pasas parametros, no va el campo kwargs.rocket.start("Bot",database_path__="C:/Users/user/path/to/db.db")CambiandoBotpor el nombre del bot a ejecutar yC:/Users/user/path/to/db.dbpor la ruta real hacia la db que contiene el bot, esto dentro de un asignar variable.Quedamos atentos!
¿La función
rocket.start()debe ejecutarse desde un bloque de Python? En Python no encuentro un objeto llamadorocketSolo veo “rocketbot, Rocketbot, rocketbot__” y ninguno de ellos cuenta con el atributo .start()2026-07-31 13:57:23.378604 – ERROR – EXCEPTION IN (<string> script, L_144 “”): AttributeError: type object ‘Rocketbot’ has no attribute ‘start’
Debo importarlo antes? y si es así como realizo esa importación?
Muchas gracias por el apoyo.
¿La función
rocket.start()debe ejecutarse desde un bloque de Python? En Python no encuentro un objeto llamadorocketSolo veo “rocketbot, Rocketbot, rocketbot__” y ninguno de ellos cuenta con el atributo .start()2026-07-31 13:57:23.378604 – ERROR – EXCEPTION IN (<string> script, L_144 “”): AttributeError: type object ‘Rocketbot’ has no attribute ‘start’
Debo importarlo antes? y si es así como realizo esa importación?
Muchas gracias por el apoyo.
Como le indique anteriormente debe ocupar el comando asignar variable del modulo nativo sistema, en el cual debe colocar en el input dato, lo siguiente
rocket.start( “Open_rocketbot”, database_path__=”C:/Users/Usuario/Downloads/Open_rocketbot.db” )
En donde Open_rocketbot -> corrresponde al nombre del robot
y en la db -> debe pasar la ruta de su robot.
En cuanto a exportar o importar un robot, le comparto la documentación que podría serle de utilidad.
https://docs.rocketbot.com/2024/01/26/como-exportar-un-robot/