2009-02-08 101 views
0

我需要实现一个守护进程,需要从数据库中提取数据,将数据加载到内存中,并根据此数据执行诸如发送电子邮件或写入/更新文件等操作。这些操作需要每30分钟执行一次。我应该使用C++还是脚本进行守护进程?

我真的不知道该做什么决定。编译将完成任务的C++程序,或使用脚本和各种Linux工具(sed/awk)。

什么是最快的方法来做到这一点?保存cpu和内存。

这个难题是关于如何处理这个过程,如果它是脚本,它不需要编译,我可以将它放入任何机器linux/unix ,但如果它是本地的则更难。

您认为如何?

回答

5

使用cron(1)每30分钟启动一次程序。

所谓的脚本语言一定会使您比C++更快地编写程序。但是,当你必须应对所有的角落情况时,特别是关于字符串转义(想想引号,“&”的“;”的......),尽管用shell和sed或awk来做这件事情是非常困难的。

我建议你使用更全面的“脚本”语言,如Perl或Python。

+0

Python !!!!!!!!!! – 2012-04-21 21:03:12

2

你为什么要保存CPU &内存?你是否确定这是一个真正的需求(或者只是“不成熟的优化”)?

除非性能是至关重要的,否则绝对没有理由在C++中编写这样的东西。这似乎是一种维护过程(对吗?)。我说用你知道的最高级别的脚本语言编写它。 Python或PHP看起来不错。即使你不知道这些语言,它仍然需要更少的时间来熟悉它们,而不是用C++来完成它。

0

我想用Python/Perl/Ruby实现和cron条目来安排脚本每隔30分钟运行一次。

如果性能成为问题,您可以添加一列到您的数据库,该数据库跟踪您上次运行帐户计算的时间,然后将记录处理拆分为2或3或4组, 10分钟,5分钟。

如果将计算划分为组后,仍然有性能需求,则考虑C++/C/Java。

我仍然使用cron运行这个。除非您提供按需服务,否则无需成为守护进程。