Лучшая практика для создания демона на сервере Linux - PullRequest
1 голос
/ 27 октября 2011

Вот сенарио:

У нас есть сайт, работающий на NodeJS.Периодически мы извлекаем некоторые данные из Интернета, анализируем их и обновляем базу данных MySQL.

Мои вопросы:

  1. Как лучше всего создавать демона Linux?НКУ?Могу ли я сделать это на PHP или других языках?
  2. Так как NodeJ будут иметь доступ к той же базе данных, как мы можем создать мьютекс?
  3. Как мы можем управлять демоном?Например, если демон выходит из строя, мы хотим перезапустить его автоматически.

Ответы [ 3 ]

2 голосов
/ 27 октября 2011

Вы можете использовать forever.js ... см. Как запустить сервер node.js как процесс демона? . Он отвечает на ваш 1-й и 3-й вопрос. Я думаю, вы должны были искать переполнение стека или просто немного погуглили!

0 голосов
/ 28 октября 2011

Если вы разделяете ресурсы только в общей базе данных, вы можете использовать ее гарантии изоляции транзакций, чтобы остановить другие процессы, видящие неполные данные.

Это означает, что вам нужно либо выполнить атомарную операцию в SQL (один оператор), либо использовать транзакцию.

В любом случае это означает, что вам нужно использовать транзакционный механизм в MySQL (возможно, InnoDB), а ваше приложение должно знать и правильно обрабатывать взаимоблокировки.

0 голосов
/ 27 октября 2011

Вы можете кодировать демон на любом языке: C, C ++, Ocaml, Haskell, ... (но я не буду кодировать его в PHP).

Самое важное в кодировании демона - убедиться, что код надежный и обнаруживает ошибки.

Параллельный доступ к базе данных должен обрабатываться сервером MySQL.

...