2009-02-08 97 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運行這個。除非您提供按需服務,否則無需成爲守護進程。