【发布时间】:2020-05-23 09:39:59
【问题描述】:
所以我试图在每个周末,周六,上午 12 点运行一个函数。 我在这里寻找答案,发现有人建议使用超时,但这并不是我真正想要的,因为我认为它不能解决我遇到的问题
所以当服务器启动时,我应该从数据库中获取一个日期 假设是 2020 年 5 月 22 日星期五(这应该在每个周末发生)
我希望服务器在 2020 年 5 月 23 日星期六午夜执行一些请求/计算
我正在考虑做这样的事情:
while(true){
if(current_date==next_week){
//do stuff that i want ...
next_week=next_week+ 1 week
}
//update current_date
}
一般来说,在服务器上运行 while 循环是否被认为是个坏主意?或者这是一个好主意? 如果这是一个坏主意,有没有更好的方法来解决这个问题?
【问题讨论】:
-
“一般来说,在服务器上运行 while 循环是否被认为是一个坏主意?”这是一个非常的坏主意。您将永远占用线程,并且没有其他方法可以工作。
-
我从来没有真正尝试过这样做,这就是我问的原因,我知道如果你尝试在浏览器中进行无限循环,它会导致它崩溃,但我不是确定在服务器上这样做是否可以。我猜他们当时是一样的
-
您基本上是在告诉您的服务器“使用 100% 的 CPU 功率,一天 24 小时,持续地做一件事,而不是别的:如果现在是星期六凌晨 12 点,每秒检查几百万次”。可能有一种更聪明的方法可以做到这一点:) 就像 cron 作业一样,或者至少每隔一小时检查一次条件。
标签: javascript node.js logic server-side