我编写了一个 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(使用前将#替换为@)