在 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 中安排异步函数 的相关文章

随机推荐

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

    假设我有一个名为 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