首页 > 解决方案 > 如何在正在运行的 Python 进程中刷新当前日期?

问题描述

supervisord用来保持使用 Python 开发的 Telegram 机器人在服务器上运行,并且我正在使用 datetime 库来获取当前日期并执行取决于当前日期的操作。

from datetime import date


today = date.today()

问题:我注意到,当进程运行时,Python 总是返回相同的日期;所以,我的机器人不会每天返回不同的输出,而是一样的。

为了解决这个问题,我必须进入服务器,停止主管,终止进程,然后手动执行 python 脚本以使用当前日期运行机器人。

我想过使用 crontabsupervisorctl restart all每天运行一次,但是当我运行该命令时,Python 进程并没有停止,即使我终止了进程并运行该命令,输出仍然返回昨天的日期,我需要手动运行python3 myfile.py以刷新它。有一种方法可以在不终止进程的情况下实现 Python date.today(),还是可以终止并重新启动 Python 进程以刷新当前日期?

当前代码:

def get_today_meditation(update, context):
    chat_id = update.message.chat_id
    today = date.today()
    print(today)
    [ ... ]


def main():
    key_api = os.environ.get('PYTHON_API_BREVIARIO_KEY')
    locale.setlocale(locale.LC_ALL, "pt_BR.UTF-8")
    updater = Updater(key_api, use_context=True)
    dispatcher = updater.dispatcher
    dispatcher.add_handler(CommandHandler('meditacaodehoje', get_today_meditation))
    updater.start_polling()
    updater.idle()


标签: pythonservercrontelegram-botsupervisord

解决方案


推荐阅读