Python 在Heroku中从web dyno调度一次性作业

Python 在Heroku中从web dyno调度一次性作业,python,python-3.x,heroku,apscheduler,Python,Python 3.x,Heroku,Apscheduler,我读过Heroku的网页,里面有一个web dyno和一个时钟dyno,它们以已经设置好的时间表独立运行某些作业。我需要的是能够安排来自web dyno的一次性作业,也就是说,来自该dyno的作业必须是可访问的,我不太清楚如何实现这些细节 目前,我有一个具有多个线程的worker dyno,其中一个线程是执行作业的线程。如果有挂起的作业,则此线程将从头开始。否则,当有作业请求时,它将由主线程启动。从那以后,线程一直休眠,直到完成任务。这种等待可能会被来自主线程的新请求中断,它必须检查下一个作业何

我读过Heroku的网页,里面有一个web dyno和一个时钟dyno,它们以已经设置好的时间表独立运行某些作业。我需要的是能够安排来自web dyno的一次性作业,也就是说,来自该dyno的作业必须是可访问的,我不太清楚如何实现这些细节

目前,我有一个具有多个线程的worker dyno,其中一个线程是执行作业的线程。如果有挂起的作业,则此线程将从头开始。否则,当有作业请求时,它将由主线程启动。从那以后,线程一直休眠,直到完成任务。这种等待可能会被来自主线程的新请求中断,它必须检查下一个作业何时开始。如果没有挂起的作业,线程将结束其执行。问题是,这种方法已经占用了我所有的空闲时间,而且似乎不是一种好的做事方式

我读过ApsScheduler的
add_job
是从web dyno调用的,但我认为当web dyno处于休眠状态时,调度器甚至不会工作,对吗?这怎么可能呢


我希望我对自己的解释足够好。

检查一下,它解释了如何从Web请求(一次性任务)启动线程,也许它会有帮助,这将是我现在所拥有的,或多或少,某种触发器,使线程在动态时间框架内做些事情。但是作业可能需要等待几个小时才能开始,这就是为什么我认为我需要一个调度程序。是的,我的示例立即启动线程。您可以添加一个延迟,但如果您想控制它何时运行,最好的选择是schedulerOk,感谢您保证需要一个调度器。我不太清楚这一切是怎么回事。你认为像我在问题中提到的那样的解决方案有效吗?我可能错了。一般来说,您只需要使用后台进程工作者和队列。一次性任务get已添加到队列中。或者,您可以通过
heroku run…
命令将heroku dyno run命令作为一个一次性命令。我强烈建议查看heroku调度程序插件。您可以将其配置为每10分钟/1小时/24小时运行一次。可能会根据您在运行这些任务时需要的“敏捷”程度而起作用。我每年开发十几个web应用程序,Heroku scheduler大概可以为其中90%以上的应用程序工作。检查一下,它解释了如何从web请求(一次性任务)启动线程,也许它会有所帮助。这可能就是我现在所拥有的,或多或少,某种触发器,可以让线程在动态时间框架内做一些事情。但是作业可能需要等待几个小时才能开始,这就是为什么我认为我需要一个调度程序。是的,我的示例立即启动线程。您可以添加一个延迟,但如果您想控制它何时运行,最好的选择是schedulerOk,感谢您保证需要一个调度器。我不太清楚这一切是怎么回事。你认为像我在问题中提到的那样的解决方案有效吗?我可能错了。一般来说,您只需要使用后台进程工作者和队列。一次性任务get已添加到队列中。或者,您可以通过
heroku run…
命令将heroku dyno run命令作为一个一次性命令。我强烈建议查看heroku调度程序插件。您可以将其配置为每10分钟/1小时/24小时运行一次。可能会根据您在运行这些任务时需要的“敏捷”程度而起作用。我每年开发十几个web应用程序,Heroku scheduler大概为其中90%以上的应用程序工作。