当前位置: 首页 > 面试题库 >

Node.js setTimeout持续24小时-有任何警告吗?

太叔京
2023-03-14
问题内容

一个简单的问题,我想将24或12个小时的超时设置Node.js为定期(每天一次或两次)来检查一些数据库数据并清除可疑垃圾(如果有)。

我需要注意由于设置了巨大的超时而引起的任何可能的问题或性能问题吗?我不介意毫秒数不是精确的12-24小时,也不介意在服务器崩溃时丢失此超时,因为无论如何我将在服务器启动时运行相同的垃圾收集器。

结论:

  • 我没有使用本机OS cron运行单独的脚本,因为我需要访问此脚本中的当前Node.js进程数据
  • 最后,我决定使用https://www.npmjs.com/package/cron 软件包,因为它具有在特定时间(大概是在服务器负载较低时)进行退避的能力。
  • 感谢大家的快速回复!

问题答案:

我已经成功使用了该软件包cron。它使用简单,通常与CronTab兼容。我有一个每月运行一次的工作,自去年以来一直有效,所以我可以证明这一点。

话虽如此,该程序包最终仅在setTimeout内部使用,因此您这样做没有任何实际问题。如果您的超时数太大(大于最大JavaScript整数),则可能有问题,但1000 * 60 * 60 * 24比这小得多。

显然,如果您的系统出现故障或脚本因其他原因而崩溃,则超时将不起作用。

您也可以crontab直接使用(如果有)(或Windows任务计划)。



 类似资料:
  • 如果我的时间单位为秒,且在86400/20=4320次循环后循环持续时间为20秒,则24小时已过去。 这个问题是否有一个优雅的解决方案,或者我真的必须切换所有类型的大小写?我知道这不会经常发生,但是如果在未来引入新的类型,代码必须适应:) 我也在考虑使用方法,并依赖于返回类型的顺序,通过检查输入单元在其中的位置,知道通过哪个常数(1000L、60L等),我可以自己计算循环数,而无需任何,等方法,但

  • 问题内容: 因此,Python具有正负无穷大: 这似乎就像必须要注意的功能类型。我有什么需要注意的吗? 问题答案: 您仍然可以通过涉及以下内容的简单算法获得非数字(NaN)值: 请注意,通常 不会通过常规的算术计算获得值: 该值被认为是具有异常语义的非常特殊的值,因此最好直接了解异常,而不是将值静默注入计算中。

  • 问题内容: 我正在使用sql server 2008 r2。我正在尝试在 FromDate 和 Todate 之间按24小时周期范围划分行。例如,如果给定的时间行如下(( FromDate 和 Todate 之间的范围是4天,那么我要4行) 我想要看到的结果是这样的: 问题答案: 试试这个查询:

  • 我得到一个错误,当我试图访问我自己的管理员4.8.0在路由与我的浏览器。它在没有Laragon的情况下工作。 使用: 拉拉贡4.0。16(其中包含Adminer 4.6.3应用程序) PHP8.0。三, 我得到以下错误:

  • 问题内容: 我在python脚本中隐性地做一些简单的数学运算,并得到以下警告: “警告:在除法中除以零”。 为了提供一些背景信息,我采用了两个值,并尝试找出值的百分比差异,如果其值在某个范围内,则对其进行处理,但有时或的值为零。 我想摆脱此特定警告(在特定行),但是到目前为止,我发现的所有信息似乎都向我展示了如何停止所有警告(我不希望这样做)。 当我过去编写shell脚本时,我可以做这样的事情 在

  • 问题内容: 我有一个将a解析为: 当我解析这个: 结果将是,当使用时: 8月29日 2011 00:44:00 当然,这应该是: 8月29日 2011 12:44:00 当我解析这个: 然后结果如预期的那样: 8月29日 2011 13:44:00 我怎样才能解决这个问题? 问题答案: 使用代替小时模式: