gpt4 book ai didi

node.js - nodejs 作业服务器(多用途)

转载 作者:搜寻专家 更新时间:2023-10-31 23:31:03 24 4
gpt4 key购买 nike

我是新手,刚开始了解 node.js(PHP 开发人员背景)。我在 nodejs 网站上看过一些 nodeJs 示例和视频。

目前我正在运行一个视频网站,并且在后台需要执行许多任务。目前这是由调用 php 脚本的 cronjobs 完成的。这种方法的缺点是,当另一个进程启动时,前一个进程仍在运行,服务器等会出现高负载。

需要在服务器上完成的工作如下:

  • 从网站抓取提要并将其插入 mysql 数据库
  • 从网站获取数据(抓取)(根据要求)
  • 生成报告数据。这些主要是需要执行的 mysql 查询。

future 需要完成的任务

  • 记录视频观看次数(当用户访问视频页面时)(这也会记录到 mysql 中)
  • 一般记录访问者
  • 根据搜索到的视频展示广告

我希望能够调用一个 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。当然我只是猜测,但根据您的要求,它可能是完成这项工作的好工具:

  • 从网站抓取数据/提要 - 主要是等待网络 IO
  • 将数据插入 MySQL - 主要是等待网络 IO
  • 报告 - 同样,Node 擅长 MySQL 查询,但可能不太擅长分析数据
  • 调用 URL 来安排作业 - Node 的内置 HTTP 处理和出色的 web libraries小菜一碟

因此,您完全有可能想要尝试使用 Node 来完成这些任务。如果这样做,请查看 Resque for Node 或其他作业系统,如 Kue .如果您不需要复杂的东西,那么自己构建也不是很难-- Redis is a good tool for this .

您可能不想使用 Node 有几个原因。如果您不熟悉 JavaScript 和 eventedcontinuation-passing style programming , Node.js 可能有一点学习曲线,因为你必须强制自己停止同步思考。此外,如果您的程序中确实有很多繁重的非 IO 任务,例如分析数据,Node 将不会表现出色,因为这些计算会阻塞主事件循环并使 Node 无法为您的异步 IO 处理回调等。最后,如果您已经使用 PHP 或其他语言编写了很多逻辑,则使用您选择的语言找到解决方案可能会更容易和/或更快。

关于node.js - nodejs 作业服务器(多用途),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10766382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com