Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点-在后台不规则地运行脚本_Javascript_Node.js_Timer_Setinterval - Fatal编程技术网

Javascript 节点-在后台不规则地运行脚本

Javascript 节点-在后台不规则地运行脚本,javascript,node.js,timer,setinterval,Javascript,Node.js,Timer,Setinterval,我想让我的主Node.js应用程序运行。因此,它负责一些路由、数据库查询和生成视图。启动时,将启动一个脚本,该脚本几乎一直在后台(在循环中)执行相同的操作。此脚本应在启动期间使用数据初始化,但在运行时也应可访问。脚本将写入同一个数据库,在最好的情况下,如果出现问题,它可以告诉main Node.js应用程序 我试了一下,问自己这种方法是否是最简单的解决方案。我在对象的间隔上设置了一个超时,并传递了一个函数。在这个函数中,我执行我的操作并设置下一个(稍微改变的)间隔,我再次意识到这是一个超时。

我想让我的主Node.js应用程序运行。因此,它负责一些路由、数据库查询和生成视图。启动时,将启动一个脚本,该脚本几乎一直在后台(在循环中)执行相同的操作。此脚本应在启动期间使用数据初始化,但在运行时也应可访问。脚本将写入同一个数据库,在最好的情况下,如果出现问题,它可以告诉main Node.js应用程序


我试了一下,问自己这种方法是否是最简单的解决方案。我在对象的间隔上设置了一个超时,并传递了一个函数。在这个函数中,我执行我的操作并设置下一个(稍微改变的)间隔,我再次意识到这是一个超时。 据我所知,我的应用程序的其余部分只是继续运行,超时中定义的函数只是在适当的时刻跳转到两者之间。如果我想中断无休止的重复,我可以用timeout函数创建的对象来完成。(在代码示例中未实现)

我唯一关心的是,这是否会导致递归,如果我重复太多,就会出现错误?

函数myFunc(obj){
//正在处理对象。。。
log(“处理对象:“+obj.objectID”)
//计算轻微变化的下一个间隔
设newInterval=obj.interval+3000*Math.random()-1500
log(“下一个进程将在:“+newInterval+”ms”中启动”)
//开始下一个周期
设置超时(myFunc、newInterval、obj);
}
//样本对象
让对象={
目标1,,
间隔时间:5000
}
//开始无限循环

setTimeout(myFunc,object.interval,object)也许你需要类似于
cron
package的东西来按计划运行某些东西(你甚至可以使用child\u进程):谢谢你的回答:)-是的,我也想过了,但是cron不是用来定期执行命令的吗?我希望重新计算到下一次执行的时间间隔,但有一点差异。要使用cron执行此操作,cron作业必须在每次执行时删除自身并创建一个新作业,或者?我本希望有更好的解决办法。