这似乎是一个简单的问题,但我很难找到答案。在
我正在制作一个需要不断运行任务的web应用程序。在
我将使用Pingdom或{a2}之类的站点作为类比。正如您可能知道的,Pingdom检查正常运行时间,所以经常检查网站是否正常运行,Twitterfeed检查RSS提要,看它们是否已更改,然后在tweet上发布。我也需要运行一个简单的脚本来循环访问数据库中的url并对它们执行操作。在
我的问题是:我应该如何实现这一点?我熟悉cron
,目前正在使用它来执行服务器备份。这是该走的路吗?在
我知道如何制作一个可以无限期运行的Python脚本,在我完成后从数据库中的下一个URL开始。我应该在服务器上运行吗?我怎么知道它总是在运行,不会崩溃什么的?在
我希望这个问题有意义,我希望我没有重复别人或任何事情。在
谢谢你
山姆
编辑:说清楚,我需要任务不断运行。在中,检查数据库中的URL 1,检查数据库中的URL 2,检查URL 3,当它到达最后一个时,直接返回到开头。谢谢!在
如果您需要一个可以从命令行运行的任务的可重复运行,
cron
就是理想的选择。 我看不出这种方法有什么缺点。更新: 好吧,我觉得这个问题有些不同。现在我看到了几种解决方案:
cron
肯定是一种解决此问题的方法,以及您可能喜欢的任何其他任务调度器。你的问题标题中有一个要点:
后台任务和web应用程序应该分开。它们可以是独立的数据库,但它们可以共享独立的数据库。(将它们视为访问相同后端逻辑的独立UI。)
这主要是因为web应用程序和后台进程在架构上有很大的不同,并不打算混合使用。考虑在web服务器(Apache、IIS等)中保存的web应用程序的结构。应用程序何时“运行”?当它“打开”时?这不是一个真正的任务。它是一个等待输入(请求)处理和生成输出(响应)的服务,然后返回到等待状态。
Web应用程序用于响应请求。计划任务或守护程序作业用于在后台运行重复的进程。把两者分开会使你对这两者的管理变得容易得多。
相关问题 更多 >
编程相关推荐