0

Oracle を使用し、夜間ジョブ (別名 Batch) を実行するレガシー システムがあります。バッチ処理中に、複数のイベントをそのデータベース内の複数のテーブルにポストします。これらの変更を監視できる Web ベースのアプリケーションを作成したいと考えています。

私の一般的な考えは

  • データベース(具体的には、前述のテーブル)の変更をリッスンし、メッセージ/データ(json、XML)を発行するPHPサーバー/バックエンドアプリを作成する
  • PHPサーバーをリッスンするために「登録」されたAjax駆動の(HTML5、jquery)Webアプリがあります
  • これらのイベントとメッセージに基づいて、Web アプリのさまざまなコンポーネントを更新します

誰かがこのようなことをしたことがあり、ガイダンスや方向性を提供できますか?

このようなプロジェクトは、Yii などの PHP フレームワークに基づいている必要がありますか? Yii のドキュメントを読んだところ、その db API について言及されています。

余談ですが、NodeJS を使用して同様の演習を試みました。実際のデータベースには接続せず、代わりにサーバー コードでイベントをシミュレートしました。ここでも、サーバーからの発行 (メッセージ) を介して適切に投稿されたイベントを含む jquery ベースのページでした。

要するに、データベースの変更をリッスンする PHP サービスが必要です。変更をリッスンするフロントエンド アプリを登録します。フロントエンドを更新。

ありがとう。ロブ

4

1 に答える 1

1

DB に接続するには PHP が必要です (そうしないと、クライアント側の接続でユーザー名とパスワードが明らかになります)。

したがって、Web アプリで ajax 呼び出しを行い (jQuery を使用したことがある場合はそれで十分です)、1 分 / 10 秒 / 秒ごとに PHP スクリプトを呼び出します。結果について。PHP スクリプトはデータベースに接続し、変更を報告します。

DB の変更を「リッスン」する別のサービスが必要な場合は、通常の PHP を記述します (ブラウザで実行/デバッグできます)。これは、毎分データベースを監視し、必要なアクションを実行する PHP スクリプトです。好きなフレームワークを使用できます - 通常の PHP です。これが機能するようになったら、「cron」ジョブとして設定します。毎分 "PHP -q /path/to/yourfile.php" を実行します。変更があった場合、PHP は必要なフラグを設定できます。

Javascript ポーリングに関する単語または警告 - setInterval() を使用していないことを確認してください - ただし、AJAX 呼び出しが返される (または返されない) たびに次回から開始します。サーバーが忙しすぎて応答できない場合、別のリクエストを送信すると、サーバーが忙しくなり、そこから下り坂になります。そのため、応答が得られたとき、または妥当な時間が経過しても応答が得られなかったときに、次のポーリングを設定します。

my resistance.net でこれを確認できます: WordPress と SMF のインストールを実行します。Wordpress の部分 (ブログ/ニュース ビット) を使用している場合は、数分ごとに「ping」機能を使用してデータベースをポーリングしています。これにより、データベースがチェックされ、SMF 部分にログインまたはログアウトしたかどうかが確認され、ログインしている場合は WordPress 部分がリロードされ、必要に応じてログインまたはログアウトも行われます。

于 2012-05-19T08:37:19.670 に答える