【问题标题】:cronJob and HTTP requestscronJob 和 HTTP 请求
【发布时间】:2018-05-06 05:56:00
【问题描述】:

我是 Web 开发新手,对 http 请求和 cron 作业有一些疑问。我 npm 安装了 cron 并希望将其合并到我的应用程序中,其中 app.js 正在从客户端获取请求,这些请求从客户端填写的表单中将数据添加到数据库中(使用 mongoose)。我想运行一个脚本(executor.js),每 10 秒调用一次,以执行将使用同一数据库中的数据的任务。关于如何实现这一点的任何建议?

【问题讨论】:

  • 为什么不使用 setInterval(job_callback, 10000) ?
  • 您也可以使用执行某些 .js 的 OS cron 作业

标签: node.js express cron httprequest


【解决方案1】:

您不需要为此使用 cron 作业(尽管如果您需要这样的库,则可以使用出色的库:https://github.com/kelektiv/node-cron)。对于您的特定示例,我建议使用 setInterval。

有关这方面的详细文档,请参阅 https://nodejs.org/api/timers.html#timers_setinterval_callback_delay_args

var intervalMs = 10000;
function updateDB() {
   console.log("Updating db..");
   /* insert db update code here. */
}

setInterval(updateDB, intervalMs);

【讨论】:

  • 如果服务器每10s执行一次updateDB(),它还能接收http请求还是会阻塞?
  • 它仍然可以处理请求,它不会阻塞它们!
  • 谢谢!最后一件事,如果我在另一个 javascript 文件中编写 updateDB() 函数,如何将其导入 app.js(主文件)以使用它,我可以从该文件访问数据库数据吗?
  • 您可以创建一个单独的模块来执行此操作,然后您可以在 app.js 中引用!有关示例,请参见 w3schools.com/nodejs/nodejs_modules.asp
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-17
相关资源
最近更新 更多