在无限循环中渲染

时间:2009-12-08 21:59:17

标签: python google-app-engine cron

Python 2.6的问题

我想创建一个简单的 Web应用程序,它在指定的时间间隔内运行一个修改数据的脚本(在数据库中)。我的问题是无限循环的代码或实现此目标的其他方法。该脚本应该只由用户运行一次。即使用户离开应用程序,下一次迭代也应自动运行。如果有人知道方法检测应用程序中断,那么显示它也会很棒。我认为线程可能是实现这一目标的最佳方式。不幸的是,我刚开始使用Python进行冒险,但还不知道如何使用它们。

该应用程序还将显示显示数据库和控制循环脚本的视图。

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

您提到您正在使用Google App Engine。您可以通过在应用程序文件夹中放置cron.yaml文件来安排重复任务。详细信息为here

更新:听起来您并不是在寻找GAE特定的解决方案,因此我提供的更一般的建议是使用您正在使用的任何平台的本机调度功能。 * nix主机上的Cron作业,Windows上的计划任务,GAE上的cron.yaml

在你的其他评论中,你曾建议在Python中想要一些不会让你的脚本执行的东西,我认为没有办法做到这一点。某些过程必须负责启动你需要做的任何事情,所以要么你用Python做它并保持一个进程执行(即使它只是sleep ing),或者你使用平台的调度工具。操作系统几乎可以保证比你的代码做得更好。

答案 1 :(得分:1)

我认为你想要使用cron。编写脚本,每隔X分钟/小时cron运行一次。

如果您真的想在Python中执行此操作,可以执行以下操作:

while(True):
    <your app logic here>
    sleep(TIME_INTERVAL)

答案 2 :(得分:0)

您可以使用cron安排作业以特定间隔运行吗?它通常被认为比无限循环更好,旨在帮助解决这类问题。

答案 3 :(得分:0)

Python标准库中有一个非常原始的 cron import sched。还有threading.Timer

但正如其他人所说,你可能应该只使用真正的 cron