ユーザーがイメージをアップロードできるWebアプリケーションを構築中です。イメージがアップロードされると、1つまたは複数のサイズにリサイズする必要があります。それぞれのサイズはAmazon S3に送信して保存する必要があります。イメージの各サイズのメタデータとURLは、Webサーバー上の単一のデータベースレコードに格納されます。メッセージキューを使用して、非同期でサイズ変更とアップロードを実行しています(大きな画像と要求ごとに複数のサイズ変更の可能性があるため)。サイズ変更/アップロードタスクが完了したら、データベースレコードをURLで更新する必要があります。メッセージキューからデータベースを切り離すためのベストプラクティス
私の問題は、タスクを実行しているワーカーがデータベースにアクセスできないことです。私は、データベース・レコードを更新するための適切な情報を持つタスクが完了した後、httpコールバックをワーカーからWebアプリケーションに送り返すことを考えていました。他の選択肢や理由がありますか?
私は、Webバックエンドにはpython/pylons、データベースにはmysql、メッセージングにはセロリ/ amqpを使用しています。
ありがとうございます!
"...タスクを実行しているワーカーはデータベースにアクセスできません。"何か特別な理由は? –
ほとんどの場合、ワーカーは異なるマシンで実行され、セキュリティ上の理由からデータベースに直接アクセスすることはできません。 –