1

私が達成したいこと: ユーザーがデータファイルをアップロードします。キューに追加され、順番が来ると、そのファイル内の行を変換することで構成される多数の並列タスクが作成されます。ユーザーはいつでも、変換された行数のステータス (%) を取得できます。

おそらく将来、ワーカーを他のサーバーなどに移動するのは良いことなので、ギアマンを使用することにしました。私が理解しているように、ワーカーを使用するときはデータベースへの不要な接続を使用しないようにする必要があるため、データベースにステータスを保存することは実行可能なオプションではありません。

私はこのようなことを試しました:コントローラーは新しいバックグラウンドタスク(ファイル処理)を作成し、このタスクはより小さなタスク(変換、並列処理を実現するためにバックグラウンドを使用)を呼び出し、最終結果をデータベースにアップロードします。Gearman イベント リスナーは、非バックグラウンド タスクに対してのみ機能します (少なくとも、アタッチしようとした場合)。

すべてのタスクをフェッチし、ジョブ パラメータをチェックして特定の ID にリンクする必要がありますか、それとも追加のパラメータをジョブに渡すことはできますか?

GearmanClient::jobStatus にはジョブ ハンドルが必要ですが、これは 1 つの要求で作成されたバックグラウンド プロセスであり、別の要求では必要であるため、アクセスできません。

テキストの壁で申し訳ありません。ご協力いただきありがとうございます。

4

0 に答える 0