如何让我的 NodeJS 应用程序永远循环运行

2024-01-09

我编写了一个 NodeJS 应用程序,它调用 API 并仅在工作日的特定时间发布到端点。

我可以设置一个 cron 作业来在指定时间运行应用程序,但我更喜欢使用node index.js让它不断运行,什么也不做,直到合适的日期和时间,然后回到“睡眠”状态,直到第二天。

我该如何实现这一目标?我尝试使用 while 循环:

while (true) {
  myApp.run();
}

显然,进展不太顺利。

正确的做法是什么?我是否应该重写我的模块以使用事件,以便在适当的时候发出一个事件并且有一个侦听器对其做出反应?

--edit:更具体地说,我希望它以与包含网络服务器的应用程序类似的方式运行。当您启动应用程序时,它正在运行并等待连接;当请求和连接结束时它不会退出,它会继续运行等待更多的请求和连接。

--edit 2:我不想使用 cron 的原因是因为运行的日期和时间可以在config.json应用程序解析的文件。我宁愿避免打扰cron只需通过编辑来更改时间表config.json file.

--edit 3:我想自己编写代码而不使用模块。当我试图编写一个永远运行的应用程序时,我的大脑总是很痛,我想了解它是如何完成的,而不是使用模块。

--edit 4:这是我最终使用的:

function doStuff() {
  // code to run
};

function run() {
  setInterval(doStuff, 30000);
};

run();

好吧,你总是可以使用一个简单的:

 function execute(){
   //code to execute

 }


 setInterval(execute,<calculate time interval in milliseconds you want to execute after>);

这是一种非常简单的基本方法。希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让我的 NodeJS 应用程序永远循环运行 的相关文章

  • 限制 Axios 请求

    我正在使用 axios 向 Deezer API 发出请求 不幸的是 使用 Deezer 的 API 当您请求艺术家的专辑时 它不包括专辑曲目 因此 我正在通过请求艺术家的专辑 然后对每个专辑执行后续的 axios 请求来解决这个问题 我遇
  • EventHandler 应该始终用于事件吗?

    我一直在愉快地使用自定义委托类型和通用编写事件Action委托类型 没有真正考虑我在做什么 我有一些很好的扩展助手Action and EventHandler这使我倾向于使用那些预定义的委托类型而不是我自己的委托类型 但除此之外 除了惯例
  • Node 不断恢复到旧版本

    每次我在控制台中重新启动 vagrant 时 它都会询问我的登录详细信息 然后说Now using node v7 10 0 npm v4 2 0 当我做run nvm install node I get v13 11 0 is alre
  • 电子应用程序可以播放本地支持的任何视频吗?

    我知道浏览器通常会限制玩家mp4 and webm类型的媒体 但我想知道基于电子的应用程序是否可以运行 MKV 和 AVI 等格式的本地视频 我找不到明确的来源来告诉我什么是可用的 什么是不可用的 Electron 仍然仅限于网络技术 这意
  • Angular JS + Node JS + Passport + Spring OAuth2 身份验证/授权

    我是 PassportJS 和 AngularJS 的新手 我对如何进行此授权有疑问 我有由 Oauth2 保护的 Spring REST API 但我必须像这样一起发送用户凭据 http localhost 8080 myapp oaut
  • node.js通过aws-sdk模块重命名s3对象

    是否可以通过重命名 s3 上的对象aws sdk https www npmjs com package aws sdk 我找不到解决方法 也许有一个临时解决方案 我想我会回答 因为没有人回答过 这个应该有用 create a new s3
  • React-Native 打包器失败:模块名称重复

    这在开发过程中似乎是随机发生的 当尝试跑步时npm start or react native run ios 我收到以下错误 Failed to build DependencyGraph providesModule naming co
  • 如何导入和导出 javascript ES6 类

    我是 javascript 和 nodejs 的新手 我正在使用这个项目来发展我的技能并学习新技术 目前我的项目使用多个相互依赖的类 类文件位于不同的目录中 我当前正在尝试使用 export 和 require 语句来允许在其他文件中引用类
  • 从节点服务器访问 Google Calendar API

    由于某种原因 我很难访问 Google 日历 我希望能够在 Node js 服务器的日历中添加和删除事件 我从文件中发现了非常矛盾的信息 我跟着 https developers google com identity protocols
  • Node.js - 重载函数

    有没有一种方法可以重载node js中的函数 类似于 noSuchMethod https developer mozilla org en JavaScript Reference Global Objects Object noSuch
  • Node npm 包抛出使用严格:全局发布和安装后未找到命令

    我正在尝试发布 npm 包 当我全局安装该包并尝试运行 cli 命令时 我收到此错误 nvm versions node v0 12 2 bin myPack line 1 use strict command not found nvm
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • Nodemailer - 在本地工作但不在生产环境中工作

    https gist github com anonymous ba82f74071cc38a0700b https gist github com anonymous ba82f74071cc38a0700b 在更改某些设置之前 例如主机
  • 错误关系不存在

    我得到了 error relation causes does not exist 我的节点应用程序出现错误 这种关系确实存在 我不确定问题出在哪里 我创建了该表 CREATE TABLE causes cause id bigint NO
  • 渲染ejs模板

    我在nodejs中有以下代码 我读取temp ejs文件并获取ejsHtml作为字符串的内容 var html EJS render ejsHtml A div smth div 在 temp ejs 中 Output
  • axios 请求中未发送正文数据

    我试图通过 axios 请求将数据发送到我的后端脚本 但正文看起来是空的 这是前端发送的请求 axios request method GET url http localhost 4444 next api headers Authori
  • 纤维/未来实际上有什么作用?

    下面这行代码的作用是什么 Npm require fibers future 我在网上查找示例 发现了一些这样的示例 Future Npm require fibers future var accessToken new Future 什
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • 呃!尝试将包发布到 npm 时出现 403

    我正在尝试将包发布到 npm 您可以在此处查看存储库 https github com biowaffeln mdx state https github com biowaffeln mdx state 我登录到 npmnpm login
  • 使用socket.io进行用户身份验证

    我已经红色了这个教程 http howtonode org socket io auth http howtonode org socket io auth 它展示了如何使用express和socket io对用户进行身份验证 但是有没有一

随机推荐

  • 将日期格式更改为 yyyy-mm-dd

    我有一个日期列 其中包含混合格式的日期 例如 A 1990年3月21日1990年3月21日 因此 基本上一列中有两种不同的格式 dd mm yyyy and mm dd yyyy 我正在尝试编写一个 VBA 脚本来将列中所有日期的格式更改为
  • 带有 JSON 补丁的 GraphQL 突变

    GraphQL 中是否有任何数据类型可用于描述 JSON Patch 操作 JSON Patch 操作的结构如下 op add replace remove path hello value world Where value可以是任何有效
  • 如何在没有 Grails 的情况下创建 GSP 标记库

    我们可以在没有 Grails 的情况下使用 GSP 只需映射 servletgroovy servlet TemplateServlet 那么 TagLib 又如何呢 Here are http grails org doc latest
  • 从 Google 云端硬盘下载图像文件

    我正在将图像文件上传到 Google Drive SDK 然后尝试下载回相同的图像 我查看了 Google Drive Developer 示例中下载文件的示例 但它们仅向我们展示了如何从文件中下载文本 我该如何下载图像 该文件是 Goog
  • htmlpurifier 删除内联 css

    我正在使用 htmlpurifier 来清理用户内容 我正在尝试删除内联样式属性 例如 div some text div 我想删除整个样式属性 如何使用 htmlpurifier 做到这一点 您可以调整允许的属性 http htmlpur
  • 用于删除所有用户桌面上的所有图标的批处理脚本

    目前正在寻找一种方法来删除所有用户桌面上的所有图标 我一直在尝试 直到我制作了以下脚本 该脚本允许我从单个用户中删除所有内容 但如果没有硬编码 我将无法扩展它以覆盖单个 PC 上的所有用户 echo off cd del C Users U
  • 通过启动进程运行 cmd.exe 但无法将命令传递给 cmd.exe

    我想运行一个常规脚本cmd exe在不同的用户下 我用过Start Process 当脚本执行时 它只是用不同的用户在屏幕上打开提示 但不处理 command 所以我的问题是 运行后如何传递命令cmd exe使用 PowerShell 这是
  • Gmail 作为 JavaMail SMTP 服务器

    我一直在使用 JavaMail API 以 Gmail 作为我的主机 并对如何使用它发送电子邮件有一个大致的了解 但有两行代码仍然让我困惑 message setFrom new InternetAddress USERNAME API 表
  • 条件面板闪亮(似乎不起作用)

    有人可以帮我解决以下闪亮的问题吗 我需要制作一个条件面板 但在这里我不希望它出现 除非有人选择女性 然而 当我运行此代码时 条件面板出现在页面中 任何帮助都感激不尽 selectInput gender What is your gende
  • 检测 mysqli 准备好的语句中的错误[重复]

    这个问题在这里已经有答案了 我有一个自定义错误处理程序 但我需要知道在准备好的语句中测试错误的位置 我有测试吗prepared bind execute and store result 阶段还是仅选择阶段 statement databa
  • 为什么 StackPanel 不垂直拉伸其子级?

    WPF 新手 我正在查看 WPF 示例
  • 如何清理 InlineFormSet 中的某个字段?

    我需要清理内联表单集中的特定字段 但我不知道该怎么做 我尝试过使用表单集def clean self 方法但不知道在哪里保存清理后的值 如果我尝试将清理值设置为forms 0 data field 我收到 此 QueryDict 实例是不可
  • Laravel 5 应用程序始终使用“测试”环境配置

    我有一个 Laravel 5 应用程序 它有两个环境和两个配置 测试 用于 PHPUnit 配置 内存数据库 和本地 我的开发配置 即使环境配置为local 应用程序仅加载配置resources config testing文件夹 我可以从
  • 如何在 Windows 上配置 theano?

    我已经在 Windows 机器上安装了 Theano 并按照配置进行操作指示 http deeplearning net software theano library config html 我将以下 theanorc txt 文件放置在
  • 如何在 G Suite 上通过同意屏幕请求全域委派

    我需要访问公司的日历信息G Suite账户 通过API与公司系统同步数据 当我需要提供对我自己的数据的访问时 有一个相当好的方法简单的方法 https developers google com calendar auth去做吧 使用 Oa
  • 使用 tcpdump 监控流量时丢失 UDP 片段

    我所在的本地 LAN 上只有 8 台连接的计算机 使用 netgear 24 端口千兆位交换机 网络负载非常低 所有相关节点 运行 slackware 11 上的发送 接收缓冲区已设置为 16mb 我还在每个节点上运行 tcpdump 来监
  • Java 易失性是否会阻止缓存或强制执行直写式缓存?

    我正在尝试理解Javavolatile关键词关于writing具有 CPU 缓存的多线程程序中的易失性原子变量 我读过一些教程和 Java 语言规范 特别是第 17 4 5 节 在订购之前发生 http docs oracle com ja
  • 多表选择与 JOIN(性能)[重复]

    这个问题在这里已经有答案了 当从 MySQL 中的多个表中进行选择时 以下两个查询都会返回相同的结果集 是这些查询之一better或者比其他更有效率 根据我对一个小数据集 每个表中约 2k 行 的测试 它们都在大约相同的执行时间内返回相同的
  • 如何使用 Vuex 模块发布 Vue.js NPM 包?

    我正在开发一些 Vue 组件 我想将它们放入 NPM 包中 我面临的问题是我不知道如何发布依赖于 Vuex 模块的组件 我已经将这个组件库所需的所有代码整齐地放置到一个单独的 Vuex 模块中 但是当有人导入我的包时 如何注册我的模块 我猜
  • 如何让我的 NodeJS 应用程序永远循环运行

    我编写了一个 NodeJS 应用程序 它调用 API 并仅在工作日的特定时间发布到端点 我可以设置一个 cron 作业来在指定时间运行应用程序 但我更喜欢使用node index js让它不断运行 什么也不做 直到合适的日期和时间 然后回到