【问题标题】:The best practice to create a daemon on Linux server在 Linux 服务器上创建守护进程的最佳实践
【发布时间】:2011-12-16 05:02:02
【问题描述】:

这里是情景:

我们有一个在 NodeJS 上运行的网站。我们会定期从互联网上提取一些数据,对其进行分析,然后更新 MySQL 数据库。

我的问题是:

  1. 创建 Linux 守护程序的最佳实践是什么?海合会?我可以用 PHP 或其他语言来做吗?
  2. 既然 NodeJ 将访问同一个数据库,我们如何创建互斥锁?
  3. 我们如何管理守护进程?例如,如果守护程序崩溃,我们希望自动重新启动它。

【问题讨论】:

  • 请一次一个问题。 Linux 守护进程是 serverfault.SE 的领域。并查看 very first 相关问题。

标签: mysql linux node.js daemon


【解决方案1】:

您可以使用 forever.js ... 请参阅 How does one start a node.js server as a daemon process?。它回答了您的第一个和第三个问题。我想你应该搜索过堆栈溢出或者只是用谷歌搜索了一下!!

【讨论】:

    【解决方案2】:

    您可以使用任何语言编写守护程序:C、C++、Ocaml、Haskell,...(但我不会用 PHP 编写)。

    编写守护程序最重要的是确保代码健壮且可检测故障。

    对数据库的并发访问应由 MySQL 服务器处理。

    【讨论】:

      【解决方案3】:

      如果您仅通过共享数据库共享资源,则可以使用其事务隔离保证来阻止其他进程看到不完整的数据。

      这意味着您需要在 SQL 中以原子方式执行操作(单个语句)或使用事务。

      无论如何,这意味着您需要在 MySQL(可能是 InnoDB)中使用事务引擎,并且您的应用程序需要了解并正确处理死锁。

      【讨论】:

        猜你喜欢
        • 2010-11-18
        • 2020-08-10
        • 2011-10-31
        • 2010-09-24
        • 2010-10-09
        • 2018-03-10
        • 2013-07-31
        • 1970-01-01
        相关资源
        最近更新 更多