场景如下:
我们有一个网站在NodeJS上运行。我们定期从互联网上提取一些数据,分析它,并更新一个MySQL数据库。
我的问题是:
- 创建Linux守护进程的最佳实践是什么?gcc吗?可以用PHP或其他语言吗?由于NodeJs将访问相同的数据库,我们如何创建互斥?
- 我们如何管理守护进程?例如,如果守护进程崩溃,我们希望自动重新启动它。
你可以使用forever.js…参见如何将node.js服务器作为守护进程启动?它回答了你的第一个和第三个问题。我猜你应该搜索一下stack overflow或者谷歌一下!!
您可以用任何语言编写守护程序:C, c++, Ocaml, Haskell,…(但我不会在PHP中编写)。
在编写守护进程代码时,最重要的是要确保代码是健壮的和可检测错误的。
对数据库的并发访问应该由MySQL服务器处理
如果您只通过共享数据库共享资源,则可以使用其事务隔离保证来阻止其他进程看到不完整的数据。
这意味着您需要在SQL中自动执行操作(单个语句)或使用事务。
在任何情况下,这意味着你需要在MySQL中使用事务引擎(可能是InnoDB),你的应用程序需要意识到并正确处理死锁