我使用node-schedule在将来的某些时间(多个小时)运行任务。 node-schedule使用setTimeout()来完成延迟调用。
短时间工作很好,但是在我通过向服务器发送请求手动“捅”/唤醒进程之前,很长时间都不会启动。
我使用nohup node server.js &
调用该进程,然后离开shell。
几个小时后,在超时应该被触发后,我回到服务器并验证该进程是否仍在运行(在top
中列出)。但是,在我向服务器发送请求然后立即运行所有过去的超时之前没有任何反应(通过记录验证)。
似乎进程处于睡眠状态,阻止了超时触发,并且唯一唤醒进程的是HTTP请求。
我该如何解决这个问题?