我应该使用c ++或脚本进行守护进程吗?

时间:2009-02-08 15:50:35

标签: linux unix

我需要实现一个守护进程,它需要从数据库中提取数据,将数据加载到内存中,并根据这些数据 执行发送电子邮件或写入/更新文件等操作。这些行动需要每30分钟执行一次。

我真的不知道该决定什么。编译将执行任务或使用脚本和其他Linux工具(sed / awk)的c ++程序。

最快的方法是什么?保存CPU和内存。

困境是关于腌制这个过程,如果它的脚本不需要编译,我可以把它放到任何机器linux / unix 但如果它是原生的,那就更难了。

您怎么看?

3 个答案:

答案 0 :(得分:5)

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

所谓的脚本语言肯定会让你比C ++更快地编写你的程序。但是当你必须处理所有角落情况时,使用shell和sed a /或awk这样做是非常困难的,特别是关于字符串转义(想想引用,“&”的“;”的......)

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

答案 1 :(得分:2)

为什么要尝试节省CPU和电流?记忆?你确定这是一个真正的要求(或者只是“过早优化”)吗?

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

答案 2 :(得分:0)

我将使用带有cron条目的Python / Perl / Ruby实现来安排脚本每30分钟运行一次。

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

如果在将计算分成组后仍然有性能要求,那么请考虑使用C ++ / C / Java。

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