5

我将编写一个用于管理和标记照片的 Web 应用程序,我想就选择合适的平台/框架征求意见。

从用户的角度来看,该应用程序将非常简单,但是,我需要在后端进行一些更复杂的事情:

  • 在单独的/后台线程中重新缩放和处理大量图像(不阻塞服务器/HTTP 响应),并有可能被另一个 HTTP 请求中断该线程
  • 访问 Amazon S3 存储,通过网络发送大文件(也在后台线程中)
  • 访问 PostgreSQL 并使用复杂且可能很慢的 SQL 查询

此外,我更喜欢一些轻量级的解决方案(越轻量级越好),速度并不是那么重要,但我受到内存的限制——我将在只有 512 MB RAM 的 Linux 虚拟服务器上运行该应用程序。

我对 Java 最熟悉,但我也可以用 PHP 和 Python 编写代码。

您建议我使用哪个平台/框架?

4

1 回答 1

2

这三个都会做。但是,PHP 是_专门_设计_用于编写 Web 应用程序的,因此您会发现针对 PHP 的用例编写的资源和教程比 Python 或 Java 的要多得多。此外,请确保您运行的服务器支持您选择的技术,即用于 Java 的 servlet 容器或用于 PHP 的适当 Apache 模块。

请注意,PHP 不支持线程,所有在线“PHP 线程”教程都是可怕的 hack。我通常使用 PHP 作为 UI 的后端,并在 PHP 或 Python 中从 cron 作业开始执行后台任务。获取 cron 作业(用 PHP 或 Python 编写)的调度任务信息的一个很好的解决方案是使用 php 将它们写入数据库:

mysql_query("INSERT INTO PhotosToProcess ('time', 'tmp_name', 'resolution') VALUES (NOW(), 'someName', '640')");

尽管 Python 支持线程,但我不喜欢从用于输出 UI (HTML) 的进程中生成新线程。

于 2012-10-16T20:26:19.363 回答