- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是新手,刚开始了解 node.js(PHP 开发人员背景)。我在 nodejs 网站上看过一些 nodeJs 示例和视频。
目前我正在运行一个视频网站,并且在后台需要执行许多任务。目前这是由调用 php 脚本的 cronjobs 完成的。这种方法的缺点是,当另一个进程启动时,前一个进程仍在运行,服务器等会出现高负载。
需要在服务器上完成的工作如下:
future 需要完成的任务
我希望能够调用一个 url,以便可以对作业进行排队,还可以按时间安排作业,或者它们可以持续运行。
我不知道 node.js 是否是要遵循的路径,这就是我在这里提问的原因。在 Node 中这样做有什么好处?网站下线?
node.js 的专业人士有哪些?
感谢回复!
最佳答案
虽然传统上用于网络/网络任务(网络服务器、IRC 聊天服务器等),但当您给它任何类型的 IO 绑定(bind)(而不是 CPU 绑定(bind))任务时,Node.js 会大放异彩,因为它使用完全异步IO(即所有 IO 都发生在主事件循环之外)。例如,Node 可以轻松保持打开的多个套接字,等待每个套接字上的数据,或者非常高效地将数据传输到文件或从文件中传输数据。
听起来您真的只是在寻找 job queue ;一个流行的是 Resque ,虽然它是为 Ruby 编写的,但有 PHP 的版本, Node.js , 和更多。还有专门为 PHP 构建的作业队列;如果您想坚持使用 PHP,在 Google 上搜索“PHP 作业队列”会让您走得更远。
现在,使用 Node.js 的一个优势再次是它能够非常轻松地处理大量 IO。当然我只是猜测,但根据您的要求,它可能是完成这项工作的好工具:
因此,您完全有可能想要尝试使用 Node 来完成这些任务。如果这样做,请查看 Resque for Node 或其他作业系统,如 Kue .如果您不需要复杂的东西,那么自己构建也不是很难-- Redis is a good tool for this .
您可能不想使用 Node 有几个原因。如果您不熟悉 JavaScript 和 evented和 continuation-passing style programming , Node.js 可能有一点学习曲线,因为你必须强制自己停止同步思考。此外,如果您的程序中确实有很多繁重的非 IO 任务,例如分析数据,Node 将不会表现出色,因为这些计算会阻塞主事件循环并使 Node 无法为您的异步 IO 处理回调等。最后,如果您已经使用 PHP 或其他语言编写了很多逻辑,则使用您选择的语言找到解决方案可能会更容易和/或更快。
关于node.js - nodejs 作业服务器(多用途),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10766382/
我目前正在构建一个 android 自定义 rom,它将仅由语音控制:所以我在 android 源代码中遇到了这部分代码: // refuse 2 active AudioRecord clients
我正在尝试为此目的生成一个 RSA key 对: val purposes = PURPOSE_DECRYPT or PURPOSE_ENCRYPT or PURPOSE_SIGN or PURPOS
我是新手,刚开始了解 node.js(PHP 开发人员背景)。我在 nodejs 网站上看过一些 nodeJs 示例和视频。 目前我正在运行一个视频网站,并且在后台需要执行许多任务。目前这是由调用 p
这不完全是一个技术问题,因为我对 C 的了解足以完成我需要做的事情(我的意思是,就不要“让语言妨碍你”而言),所以这个问题基本上是一个“采取什么方向”的问题。 情况是:我目前正在上一门高级算法类(cl
我在使用 Iscroll5 时遇到一些问题,它不能水平滚动。我正在尝试做什么。 1.) 分配给类,所以我可以多次使用它(我已经可以通过推送数组来完成这部分) 2.) 将每张幻灯片设置为 100% 宽度
我是一名优秀的程序员,十分优秀!