运行 每个周末午夜都有一个功能?

Run a function every weekend at midnight?

所以我想 运行 每个周末,星期六,上午 12 点。 我在这里寻找答案,发现有人建议使用超时,但这并不是我真正想要的,因为我认为它不能解决我遇到的问题

所以当服务器启动时,我应该从数据库中获取一个日期 假设是 2020 年 5 月 22 日星期五(这应该在每个周末发生)

我希望服务器在 2020 年 5 月 23 日星期六午夜 requests/computations 做一些事情

我正在考虑做这样的事情:

while(true){

if(current_date==next_week){
//do stuff that i want ...

next_week=next_week+ 1 week

}

//update current_date
} 

一般来说,运行 服务器上的 while 循环被认为是个坏主意吗?或者这是一个好主意? 如果这是个坏主意,有没有更好的方法来解决这个问题?

您应该使用 cron job management, cron is good and nice npm module for such a task, also node-schedule 的节点模块做同样的事情,在这里使用 timeout 函数不是正确的选择,应该很好地管理长 运行 进程为此编写的模块使用和利用 OS 系统调用和 API。

您可以尝试使用 cron 作业为 运行 您的函数设置时间。

运行 从您的终端:crontab -e

然后按以下格式设置时间:* * * * *

1st*: minute (0-59), 
2nd*: hour (0-23),
3rd*: day of month (1-31),
4th*: month (1-12),
5th*: day of week (0-6) (Sunday=0 or 7)