【问题标题】:node scheduler destroy task on node server crash节点调度程序在节点服务器崩溃时销毁任务
【发布时间】:2017-10-16 09:57:34
【问题描述】:

我制作了一个应用程序,其中我使用节点服务器进行 web 服务。我的应用程序具有预订机票、电影票和巴士票等等的功能......

我需要在用户的航班/巴士时间/电影等 2 小时前向用户发送预订提醒消息...

所以我使用Node-Scheduler 它允许您设置这种动态 cron 作业..

我使用租用的 linux 服务器(我没有云)并使用forever 模块/包。

现在永远要做的是每当我的节点服务器崩溃时......它会自动重新启动它......如果节点服务器崩溃,那么我的节点调度程序 cron 作业是销毁调度程序作业。

我正在使用 mySql 数据库。所以,...

有没有办法解决这个问题??

【问题讨论】:

    标签: javascript node.js scheduled-tasks


    【解决方案1】:

    将您的计时器作业详细信息存储在数据库/或文件中, 并使用事务方法来创建/管理计时器作业。

    服务器启动后,从文件/数据库加载作业。 这应该保持一致。

    为了更加稳健,您应该在节点服务器之外作为一个单独的进程运行您的调度应用程序代码,这样您的调度程序就不会与您的节点服务器应用程序一起运行。

    为了获得高水平的可扩展稳健性,请尝试将您的服务(调度程序和 Web 服务)连接为微服务,可能使用 SenecaJS 之类的微服务工具包。

    【讨论】:

    • 我明白了你的意思,但是如果另一个进程(或专门为调度程序设置在另一个端口上的节点服务器)会崩溃,那么它会是一样的......我们需要在这里考虑的另一件事是我们应该如果我们将日程表存储在 db 中并且需要检查那个时间已经过去并且没有运行的作业调度程序,请持续检查 db 获取该预订并运行提醒功能,但我认为这不是一种继续进行的方法,并且是新进程(单独的端口/server) 是个好主意,但在服务器崩溃的情况下也不会起作用..
    • 当您说节点服务器崩溃时,我将其视为您的节点应用程序由于某些问题而崩溃。不是您的 linux 机器因为某些问题而崩溃。当然,当服务器宕机时,它上面的所有东西也会宕机。但是您必须使用分布式微服务来处理此类故障。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 2016-10-28
    • 2012-12-27
    • 2015-09-22
    • 2019-03-24
    • 1970-01-01
    相关资源
    最近更新 更多