1

Codeigniter を使用する PyroCMS のモジュールに取り組んでいます。このモジュールでは、ユーザーがフロントエンドで何らかの注文を送信すると、サイトのモデレーターに通知され、バックエンドで注文がチェックされます。その後、モデレーターが行を更新し、ユーザーに変更が通知されます。すべて完了しました。

物事を少し自動化するつもりです。ドキュメントファイルなどの電子商品である注文を提供するプロセスは、他のサーバー ( ftp ) で注文を検索し、それをメインサーバーに持ち込むことです。

そこで、次のワークフローを提案します。

  • 行をテーブルに挿入します ( front-end )
  • ロボットを初期化して ftp サーバーを検索し、ロボットが注文を処理中であることを示すフラグを設定します。
  • 見つかった場合: ファイルをサーバーに転送し、行とフラグを更新します。
  • 見つからない場合はフラグを更新し、マネージャーに残りの作業を任せます。

さて、ロボットコードを同じコントローラーに入れて、ユーザーからのhttpリクエストでロボットタスクを起動するのは良い考えではないと思います。つまり、フォームが送信され、行を挿入してプロセスを終了し、送信されたことをユーザーに通知したいだけで、ロボットタスクをバックグラウンドで実行する必要があります。

これで、ワークフローを次のように更新できます。

  • 新しい行を挿入します
  • 注文が送信されたことをユーザーに通知します。ユーザーを手放します。
  • バックグラウンド プロセスを実行 (トリガー) して ftp サーバーを検索し、成功した場合は行を更新するか、エラーが発生した場合は何もしません。

このタイプのバックグラウンド プロセスを実行するにはどうすればよいですか? アイデアや経験はありますか?

4

1 に答える 1

0

ロボット コードを他の php ファイルに配置し、フォームの送信が成功した後、php のシステムまたは exec コマンドを使用してその php ファイルを実行できます。これは、新しい php スレッドのように実行されます。お役に立てれば。

于 2013-04-04T13:10:35.900 に答える