编写 Linux 服务的最佳语言

编写 Linux 服务的最佳语言

我想创建一个爬虫,它扫描一个网页并向我发送一封电子邮件,以防页面出现问题(该页面保存一些网络服务器的状态 - 向上/向下)。

编写此类服务的最佳语言是什么?

我考虑过 PHP 或 Python,但由于它们是解释性语言(+PHP 有脚本运行的最长时间限制),我认为它们不是最适合的。

此外,C/C++ 也不是一个选择。我正在考虑 Java,因为它有线程,我可能需要它,但我不确定。

答案1

只需使用您最熟悉的语言即可。这种应用是不是CPU/内存限制。

你刚才提到的Python。它被解释了,但我真的不明白为什么这会成为一个问题。 Youtube/Tornado/Django/等。运行Python。您为特定目的而想要的所有东西已经可以作为模块使用(daemonize、http 等)。

PHP由于您提到的限制,似乎不太合适,而且还因为您需要 apache (不完全正确,但无论如何)。尽管如此,这是可能的。

Java也非常适合。您还可以守护进程并使用现有的库。

C/C++似乎有点太多,但是有了可用的库,您应该能够非常快速地生成一些工作代码。

正如 manatwork 强调的那样,bash也正好适合......

好吧,你猜对了,我的观点是,对于这种应用程序,不存在“最佳语言”。有一个语言家族已经实现了某种 http_client 库和其他库。您的 CPU 和内存不受限制。您可以享受您想要的语言。 :) 但一般来说,如果这是你的服务器,检查您的 Web 服务是否启动应该在内部检查(cron 作业、nagios 等)。在家里,您可能只想对服务器执行 ping 操作,看看硬件是否已启动并响应。

答案2

我要做的就是用 Perl 或 Python 等脚本语言编写它,然后根据需要扩展到 Java,以寻求更好的并发管理等功能。您总是希望使用最简单的工具来完成工作,并在需要时扩大规模。我是这两种语言的忠实粉丝,尽管我更了解 Java,但在求助于 Java 之前我总是会尝试用 Perl 解决任何问题。 Perl 非常适合离线工作负载处理,尤其是单线程。

另一个要问的问题是特定应用程序的 API 的可用性,尽管现在几乎任何东西都有 API 和 Web 服务。尽管如此,我敢打赌 Java 的 API 比 Perl 更多。然而,最近我对未能找到 IBM Clear Case 的 Java API 感到失望。因此,对于一些版本管理统计和监控,我使用 shell 调用其 CLI 并将数据传递给 Perl 进行进一步处理。

相关内容