在 NodeJS 中安排异步函数

2024-03-12

我想安排一个异步函数(异步/等待返回类型)每两分钟运行一次。

我尝试使用通用setInterval,节点模块如节点计划、cron、节点计划、异步轮询但无法实现异步函数调用的轮询。

这是我在代码中尝试过的:

cron.schedule("*/2 * * * *", await this.servicesManager.startPoll() => {
               console.log('running on every two minutes');
}); // this is not working breaks after first run
            
const job = schedule.scheduleJob(" */1 * * * *", async function() {
   try {
         return await this.ServicesManager.startPoll(); // this function startPoll is undefined when using this 
       } catch (e) {
         console.log(e);
   }
   console.log('Run on every minute');
});
                    
const event = schedule.scheduleJob("*/2 * * * *", this.ServicesManager.startPoll()); //using node-schedule , breaks after first time
cron.schedule("*/2 * * * *", await this.ServicesManager.startPoll()); // using cron same result as using node-schedule
return await this.ServicesManager.startPoll(); // without polling works

尝试这样的事情

// version 1
cron.schedule("*/2 * * * *", this.servicesManager.startPoll);

// version 2 => if servicesManager needs its `this` reference
cron.schedule("*/2 * * * *", async () => this.servicesManager.startPoll());

//version 3 ==> using node-schedule
schedule.scheduleJob("*/1 * * * *", async () => this.ServicesManager.startPoll());

我不知道你的情况servicesManager,您可能必须使用上面的“版本 2”才能使其正常工作。

调度库需要一个函数来执行,但在上面的示例中它们得到了一个已解决的 Promise。

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

在 NodeJS 中安排异步函数 的相关文章

  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • Node.js:无法从同一网络上的不同设备访问服务器

    注意 还有其他一些人也遇到过类似的问题 但这些问题是通过修复代码中涉及服务器如何侦听的小花絮来解决的 在我看到的示例中 他们将 127 0 0 1 作为参数放在http createServer listen 但是 我没有同样的问题 当我尝
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • 使用 Angular 下载具有动态 src 的脚本

    Angular 提供了通过动态名称动态加载模板的方法ng include 该部分中的内联 JS 和 CSS 可以正常加载 但没有一个好的方法来下载带有动态 url 的脚本 我们需要下载脚本 相对于调用它们的 html 部分的路径 即我们有一
  • Google App Engine:修改云运行环境

    我正在尝试部署一个使用自定义 Node js 服务器的 Next js 应用程序 我想将自定义构建变量注入应用程序 next config js const NODE ENV process env NODE ENV const envTy
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 如何在机器人框架中的两条消息之间设置延迟 - Node.js

    我正在开发一个机器人 它使用 botbuilder JS V4 使用 Direct Line 连接到我们的客户端应用程序 由于某些原因 消息以错误的顺序发送给机器人 例如 用户 你好 机器人 我能帮你什么忙吗 机器人 嗨 我是机器人 作为解
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交

随机推荐

  • 选择每一列,但重命名其中一列

    假设我有一个名为 Alphabet 的表 现在假设该表具有以下列 a b c d e z 现在我想从提到的表中选择所有内容 但选择 f 作为 aaa 但我不想这样做 select a b c d e f as aaa g z from Al
  • silverlight 画布装订

    我正在尝试创建一个画布 其中的项目位于画布上的指定位置 因为我无法将源和模板直接绑定到画布 我是否使用了 ItemsControl 但有一个问题 所有的项目都位于 0 0 我已经测试了绑定 它们不返回 0 0 我怎样才能完成这项工作 使物品
  • System.Speech.Synthesis 在 2012 R2 上因 CPU 高而挂起

    我有一个 asp net MVC 应用程序 它有一个控制器操作 该操作将字符串作为输入并发送合成语音的响应 wav 文件 这是一个简化的示例 public async Task
  • 哪些方法可用于管理现有数据库的不同版本?

    Note这旨在成为提出并回答你自己的问题 as per 以问答方式分享您的知识 https stackoverflow blog 2011 07 01 its ok to ask and answer your own questions
  • Ruby - 找到哈希值最大值的键

    我有一个散列 我想返回散列最大值的键 或键 值对 因此 如果只有一个真正的最大值 它将返回该键 但是 如果有多个具有相同值的键 值对 它将返回所有这些键 我怎样才能在 Ruby 中完成这个任务 my hash max by k v v on
  • psycopg2 - 插入整数数组

    我正在使用 Postgres 9 2 Python 2 7 3 psycopg2 2 5 1 我有一个表 其中一个字段声明为 some field int NOT NULL 我需要插入一些数据 所以我正在做这样的事情 cursor exec
  • 使用 1D 数组绘制 2D 绘图,无需 griddata()

    我正在尝试使用绘制两个变量的函数matplotlib 该函数存储在三个一维数组中X Y and F对应x坐标 y坐标和函数值 是否可以将这些数据绘制为等高线图 在我看到解决方案之前griddata 但我想避免插值 因为 x 和 y 坐标已经
  • 将非 bat 扩展文件作为批处理文件运行

    假设我有一个文本文件 它包含批处理命令 我怎样才能从一个文本文件中将其作为批处理文件运行 without重命名它 我也想保留它的可移植性 所以没有注册表项之类的 不重命名的原因是为了防止意外关闭时留下未重命名的文件 最简单的方法是这样的 c
  • IE bug 源 HTML5 音频无效 - 解决方法

    我 和大约一百万人 在 IE11 中发现了一个错误 不确定其他版本是否有相同的错误 如果您创建 HTML5 音频标签 浏览器无论如何都会报告 无效源 我已经尝试了所有我能想到的组合 但没有成功 迄今为止 将 HTML 结束标记从自闭更改为显
  • Mongo_mapper限制结果

    我有一个这样的查询 allJobs Job where merchant id gt session admin id to s sort start date desc limit 100 当我对此运行 count 时 我得到 jobs
  • 对于基于 Sandy Bridge 的 Pentium,正确的特定于体系结构的选项 (-m) 是什么?

    我正在尝试弄清楚如何设置 march正确地查看在使用 gcc 4 7 2 的 PC 上启用和禁用选项之间会出现多少性能差异 在尝试编译之前 我试图找到最好的 march我的电脑的选项 我的电脑有Pentium G850 其架构是Sandy
  • 如何获取旋转的线性渐变 svg 用作背景图像?

    我看到了一些围绕这个问题的问题 所以我希望这不是太多余 理想情况下 我想要一个image svg xml它可以扩展到容器的 100 彩色西拉 http www colorzilla gradient editor让我有一个良好的开端data
  • Visual Studio 2010 intellisense for KnockoutJS inside RequireJS

    我想在 Visual Studio 2010 中获得智能感知 用于淘汰 JS 经过一番研究后我得到的是 reference path lib knockout knockout 2 3 0 debug js gt ko WeGotIntel
  • Rails 4 和 Ruby 2 Net/HTTP SSL 请求:OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: 未知协议

    这几乎是以下内容的重复 SSL connect 返回 1 errno 0 状态 SSLv3 读取服务器证书 B 证书验证失败 https stackoverflow com questions 4528101 ssl connect ret
  • 水晶报表中从右到左的字符串

    考虑 SQL Server 中的以下查询 下图是水晶报表中查询的结果 正如你所看到的 右侧部分与sql server中的查询结果完全相同 左侧部分通过锁定函数进行转换 以满足波斯语从右到左的属性 我需要获得这个功能 首先 你需要重写你的sq
  • X11 非剪裁子窗口

    X 有非裁剪子窗口的概念吗 中的行为 Windows 和 OSX 的这些是 父母总是站在孩子后面 当父项关闭时 子项也会自动关闭 孩子们在移动时跟随父母 如果答案是否定的 那么我可以模拟 2 和 3 但是 1 怎么样 Thanks Cosm
  • 猫鼬有 isDirty 检查吗?

    我有一个涉及嵌入式模式的猫鼬设置 可以说 带有嵌入式评论的博客文章 评论可以由原始发布者以及编辑 管理员编辑 添加 编辑评论后 整个博客文章将被保存 我在嵌入式评论模式上设置了一些自定义猫鼬的 预 中间件 它会自动设置该特定评论的laste
  • 驱动程序可执行文件必须由 webdriver.ie.driver 系统属性设置

    我正在使用 Selenium 来自动化测试 我的应用程序仅使用 IE 它无法在其他浏览器上运行 Code import org openqa selenium ie InternetExplorerDriver import org ope
  • Firebase onAuthStateChanged 始终返回未定义

    我一直在尝试创建一个 util 方法 该方法将返回用户对象或用户对象是否存在 如果没有参数 它应该返回一个布尔值 如果有参数 getUser 它应该返回用户对象 但它总是返回未定义的 这似乎工作了一段时间 但后来我休息了一下 回来时它总是返
  • 在 NodeJS 中安排异步函数

    我想安排一个异步函数 异步 等待返回类型 每两分钟运行一次 我尝试使用通用setInterval 节点模块如节点计划 cron 节点计划 异步轮询但无法实现异步函数调用的轮询 这是我在代码中尝试过的 cron schedule 2 awai