Javascript Nodejs运行日常任务
我想每天运行一个nodejs函数。我几乎决定使用cron作业,而不是cron作业 问题是:如果没有db,什么是确保我不会以某种方式多次运行函数的最佳方法?我的想法是记录每次发送的时间,并在发送之前仔细阅读日志,检查我今天还没有发送的邮件。我知道节点计划的运行频率不应该超过我告诉它的频率,但有人可能会重新启动脚本或其他愚蠢的事情,我希望更加安全Javascript Nodejs运行日常任务,javascript,node.js,Javascript,Node.js,我想每天运行一个nodejs函数。我几乎决定使用cron作业,而不是cron作业 问题是:如果没有db,什么是确保我不会以某种方式多次运行函数的最佳方法?我的想法是记录每次发送的时间,并在发送之前仔细阅读日志,检查我今天还没有发送的邮件。我知道节点计划的运行频率不应该超过我告诉它的频率,但有人可能会重新启动脚本或其他愚蠢的事情,我希望更加安全 注意:由于对服务器的访问有限,我无法设置数据库。一个常见的解决方案是在某处创建一个pid文件。如果pid文件存在,请尽早退出该过程。否则,创建pid文件(
注意:由于对服务器的访问有限,我无法设置数据库。一个常见的解决方案是在某处创建一个pid文件。如果pid文件存在,请尽早退出该过程。否则,创建pid文件(向其中写入
process.pid
),并在进程退出时将其删除。每次运行该文件时,只需向该文件写入一段简单的JSON,该文件记录了上次运行该文件的时间。在服务器启动时,读入JSON并检查它上次运行的时间。@jfriend00是的,我正在考虑类似的事情,或者只是检查我的日志文件(我总是记录请求和操作)。我只是想知道我是不是想错了:)出于好奇:为什么不使用cron?@mscdex没有特别的原因我可能仍然会这样做。但这并不是我想要解决的问题。一个原因是,如果可能的话,我会尝试将此并行运行到web服务器