-1

以下の1つは、マスタースクリプトとスクリプトがデータ共有を行う一般的な方法です。

cronジョブ-スケジュール->マスタースクリプト

HTTPリクエスト-トリガー->子スクリプト

マスタースクリプト->[データベース]<-子スクリプト

しかし、データベースの代わりに、以下のいずれかを使用してデータを共有することは可能ですか?

  • global変数
  • システムストレージ
  • セッションストレージ
  • memcache /apc/これらのような他のもの
4

5 に答える 5

1
  1. ありえない
  2. システムストレージとはどういう意味ですか?
  3. ありえない
  4. memcach:両方のアプリケーションが値のキーを何らかの形で知っていれば問題ありません。apc:不可能
于 2012-07-16T14:12:17.823 に答える
1

残っている唯一の方法はfsです。DaveRandomが提案するソケット、または単純なファイルのいずれか。

データベースを使いたくないのはなぜですか?具体的に何をしようとしていますか?

于 2012-07-16T14:14:16.960 に答える
1

もちろん、forコマンドラインにデータベースライブラリがロードされているphp-cliと仮定すると、Webサーバーからの場合と同じようにcron-job()で実行されるスクリプトからMySQLサーバーに接続できます。php.ini

データベースを使用したくない場合は、ソケットを設定するか、一時パススルーファイルを使用できます。しかし、データベースを使用するのが最も効率的で整然とした方法です。

于 2012-07-16T14:15:32.770 に答える
1
  1. グローバル変数-いいえ
  2. システムストレージ(コメントから:これはコマンドラインです) -いいえ、一方が他方を起動する必要があり、それでも一方向です...
  3. セッションストレージ-はい名前付きセッションを使用しますが、これはデフォルトでファイルに頼ります( shmを使用してからメモリ内を使用するように構成できます...)
  4. memcached-はい
  5. apc-はい。ただし、 CLIで有効にするには明示的な構成が必要です。
  6. ファイル-はい。また、処理速度を上げるために、ramfsファイルをメモリ内のファイルシステムに保存するために使用できます。
  7. ソケット-はい(リスナーの1つを作成し、別のリスナーから接続します)
  8. データベース-はい(実際にはどうしてですか?)

私が何かを省略した場合は、 phpプロセス間通信を検索できます

于 2012-07-16T14:22:20.293 に答える
1

私はファイルソリューションを2番目にしています:

  • コーディング/理解/保守は簡単です
  • それはクラッシュの絶対確実であり、問​​題が発生したときにコンテンツを失うことはありません。
  • 同時書き込みから保護されています
  • 頻繁にアクセスするためにキャッシュする必要があるとOSが判断した場合、メモリと同じくらい高速です。(通常、OSの最適化を置き換えようとしない方が簡単/安全/高速です。)
于 2012-07-16T14:40:54.813 に答える