1

ほとんどの IT クラウドにとって、これは非常にばかげた質問に思えるかもしれませんが、私はこの種のアーキテクチャを設計するのは初めてです (以前は PHP でしか開発されていませんでした)。

特定の OS 機能を利用するアプリケーションを構築しています。エンド ユーザーは、C プログラムを呼び出す必要がある PHP スクリプトを呼び出します。後者は OS API を呼び出し、結果を文字列と PHP スクリプトへのファイル ポインタの形式で返します。

これで、この C プログラムをコマンド ライン ツールまたはデーモンとして展開するオプションがあることがわかりました。どちらか一方を選択する必要があるのはなぜですか?

4

4 に答える 4

1

デーモンは通常、バックグラウンド プロセスであるため、プログラムをバックグラウンドに置いて何かを監視し (たとえば、過去 1 時間にログ ファイルのサイズが 5 分ごとに増加することを報告する)、誰かが Web ページを監視したときに結果を報告する場合は、デーモンが正しい選択です。

代わりに、すぐに実行できること (たとえば、現在のログ ファイルのサイズを報告する) を行いたい場合は、コマンド ライン ツールを作成して維持する方が簡単です。

于 2013-07-05T14:32:44.870 に答える
1

補足として、OS 固有の関数を呼び出すために php C++ 拡張機能を作成することもできます。

ツールはアクション X を実行します (たとえば、ファイルを変換します)。それが迅速かつ高速である場合、デーモンを作成する必要はありません。デーモンは、同期書き込み/読み取り、またはキューイングが必要な場合によく使用されます。

コマンド ライン コマンドをラップするデーモンを作成する最近の簡単で一般的な方法は、 nodejsです。たとえば、こちらを参照してください。

于 2013-07-05T14:33:45.687 に答える
0

Deamon は、メモリ内のバックグラウンドで常に実行されるプロセスです。デーモンは、
プロセスの監視やデータの変更などの反復的なタスクの実行に使用されます。コマンドラインツールは、必要なときにのみ実行できるプログラムです。したがって、私の解決策は cmd ツールを使用することです。

  1. デーモンは常にメモリ内で実行されます
  2. デーモンがクラッシュした場合、誰がそれを再起動する責任がありますか?
  3. 同時リクエスト制御を実装する必要があります

だから私の意見はcmdツールです。しかし、ある種のデーモンの動作が必要な場合は、他のオプションがあります。php スクリプトまたは cmd ツールを繰り返し実行する必要がある場合は、Linux では cron を、Windows ではスケジューラを使用します。

于 2013-07-05T14:33:51.887 に答える