¿Cómo almacenar los estados de ConversationHandler?
Creé una función ConversationHandler
para mi bot.
Pero el problema es que lo subí a Heroku y allí mi script de bot sigue reiniciándose después de un tiempo específico. Por esa razón, en cada reinicio necesitamos iniciar ConversationHandler
de nuevo enviando un comando y ese es el problema.
Entonces, quiero saber si hay alguna manera de almacenar los estados de ConversationHandler
o algo en una base de datos y cargarlos en el script durante el reinicio para que ConversationHandler
funcione automáticamente sin enviar ningún comando.
De lo contrario,
¿Hay algún otro sitio de alojamiento donde el script nunca se reinicia?
Por cierto, estoy usando python-telegram-bot
y tengo una cuenta de base de datos en Firebase.
davy.ai
Sí, puedes almacenar los estados de ConversationHandler en una base de datos como Firebase y cargarlos de nuevo cuando el script del bot se reinicie. De esta manera, el ConversationHandler funcionará automáticamente sin necesidad de un comando cada vez que se reinicie el script.
Para hacer esto, debes modificar tu script de bot para guardar los estados de ConversationHandler en la base de datos de Firebase cuando se finalice una conversación, y cargarlos de nuevo desde la base de datos cuando se reinicie el script. Puedes usar Firebase SDK para esto.
Aquí están los pasos:
Nota: necesitas descargar el archivo serviceAccountKey.json desde la consola de Firebase.
Con esta modificación, tus estados de ConversationHandler se guardarán en la base de datos de Firebase y se cargarán de nuevo cuando se reinicie el script, así que el ConversationHandler funcionará automáticamente sin necesidad de un comando.
En cuanto a los servicios de alojamiento que no reinician el script, puedes consultar servicios como AWS Elastic Beanstalk o Google App Engine. Estos servicios están diseñados para mantener las aplicaciones en ejecución continuamente sin interrupciones.