我意识到它可以依赖于某些事情(显然代码的编写效率很高);但是,一般来说,在编写cron作业时使用的最合适且最有效的语言是什么?
这是否仅仅归结为什么是最有效的语言时期的问题,或者cron作业的特异性可以决定一种编程语言而不是另一种编程语言?
此外,MySQL数据库操作是否会影响cron作业的首选编程语言?
答案 0 :(得分:4)
任何语言(如果是MySQL,任何带有mySQL库的语言)都可以使用,只要它有:
命令行界面。不确定哪种语言是不可取的 - 显然甚至LOGO现在都有CLI支持的实现,虽然在后台程序中LOGO的用途有点超出我的范围:)
生成的代码在您的cron守护程序所在的任何系统上运行(最常见的是Unix服务器,但我认为有Windows的cron端口等等)
任何其他考虑都与cron作业无关。
效率明智,它完全取决于工作所完成的工作(但同样,与工作完成无关)。
对于一些极端性能密集型异常,请选择您可以开发的最佳语言(基于您对它的熟悉程度和所需库的可用性)。
对于性能敏感的代码,通常的选择是C ++和/或Assembly用于真正优化的东西 - 但说实话,整个性能讨论完全超出了你的问题范围,我确信有很多完美答案的问题在其他地方的StackOverflow上。
答案 1 :(得分:1)
由于您的代码在奇数小时无人值守运行,因此您需要一种具有良好错误处理和报告功能的语言。也就是说,它需要在崩溃时打印回溯。
答案 2 :(得分:0)
我遇到的大多数cron作业都是使用bash(或系统shell的脚本语言)。但是,如果性能至关重要,我会编写一个C ++应用程序来实现我想要的(尽管实际上并不多) bash脚本不够的时候。)
我还看过一些从cronjob调用的PHP脚本 - 我们有一个第三方提供的PHP应用程序,每小时运行一次相关的cron.php。
几乎任何可以从shell提示符运行的东西都可以从cron运行,因此您可以从bash中访问MySQL命令行工具,就好像您在shell上手动执行它一样。如果编写PHP应用程序/脚本使其不依赖于Web服务器(基于MVC模型的应用程序是一个很好的候选者),也可以使用来自cron作业的php -f <php_script.php>
来调用它。
答案 3 :(得分:0)
Bash:无处不在,简单,擅长文件处理操作,可能很难进行MySQL操作。
Perl:无处不在,知名的Unix胡子系统管理员,非常大的库库。可能有点难以维护你不小心你的代码风格。
Python:无处不在,但可能是旧版本(任何Python 2.3+都很好,你不太可能在野外找到旧版本),优秀的库,易用性,可维护的代码,因为语法比perl更严格。找到已经知道它的人可能会有点困难,但要加快速度应该不难。
Perl和Python都有大量经过时间测试的MySQL绑定,并且在几乎所有Unix派生的操作系统中都是标准的,就像bash一样。