【问题标题】:Setup scheduled python skript on specific date or every day在特定日期或每天设置预定的 python 脚本
【发布时间】:2022-07-02 17:29:15
【问题描述】:

我有一个 python 脚本,可以通过 API 在板上发布消息。手动运行它非常完美。

现在我想制作一个消息列表,例如每天发一个。或者给我的妻子/孩子生日等。

我可以设置一个 raspi 来做到这一点,但我想知道是否有一种简单的方法可以做到这一点,而不必一直运行计算机,因为这个东西大部分时间什么都不做。例如,我可以在 google colab 中运行此脚本,但我认为没有安排该脚本的选项。我也不想为这个玩具支付服务器费用。有什么东西可以提供对 python 解释器的访问吗?

【问题讨论】:

    标签: python schedule


    【解决方案1】:

    您可以使用python anywhere 之类的服务并安排代码每 24 小时运行一次,一段时间后他们会停止运行代码,但他们会向您发送一封电子邮件告诉您,您可以重新启动它

    【讨论】:

    • 听起来很完美。我会试一试。谢谢!
    【解决方案2】:

    你需要一个 cron 任务。您可以从自托管或在线 linux 系统运行它。 Windows PC 也可以工作,但我认为它作为任务调度系统有点过头了。

    有一些服务可以为您抽象它,请查看https://www.pythonanywhere.com/,它们有一个计划作业功能,可以每天或每小时运行一个脚本。

    Azure 有一个WebJobs 功能,也可以运行 python 脚本。

    如果您已经有一些运行 cPanel 的 VPS 服务,您可以检查 VPS 是否安装了 python 并从 cPanel 界面安排作业。

    另一种选择是无服务器云系统,例如 AWS LambdaGoogle Cloud,但我发现它们的设置都更加复杂。

    另一种选择是使用来自 Gitlab 等托管 git 站点的 CI/CD 管道,它们有 scheduled pipelines 也可以运行您的脚本。

    【讨论】:

      【解决方案3】:

      使用 Red Engine 很容易:

      from redengine import RedEngine
      
      app = RedEngine()
      
      @app.task('daily')
      def do_daily():
          ... # This function runs once a day
      
      @app.task('daily between 13:00 and 15:00')
      def do_daily_at_specific_time():
          ... # This function runs once a day at 1 PM to 3 PM
      
      if __name__ == "__main__":
          app.run()
      

      查看更多:https://red-engine.readthedocs.io/

      【讨论】:

        猜你喜欢
        • 2015-08-23
        • 2021-04-26
        • 2015-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-01
        • 2017-09-12
        相关资源
        最近更新 更多