Laravelでジョブを作れば、キューへメッセージを送る処理と実行する処理を自動化出来る事は理解しております。
ジョブ機能を介さずに追加されたメッセージをLaravelで処理する方法はあるのでしょうか?
ご教示いただきたい事
最初に記載した内容と重複しますが、
Laravelのジョブ以外で追加したのメッセージを取得して、Laravelのジョブようにメッセージを解析して処理する方法は無いでしょうか?
想定している仕様
RDS(MySQL)とDynamoDBの同期をしたいと考えています。
DynamoDBのデータを取得して、アプリケーション側で処理をしてRDSに書き込みをしたいです。
そのために、下記の流れでデータを登録したいと考えています。
- DynamoDBでレコードを追加したタイミング(dynamodb streams)をトリガーにLambdaの関数を実行
- AmazonSQSのキューにメッセージを追加
- 定期的にキューを監視し、追加されていればRDSに書き込み。
また、本件とは別に複数ジョブは動いていますので、
SQSにはLaravelから送られたメッセージが保管されています。
状況
下記は実現できる状態です。
- LambdaからAmazon SQSにメッセージを追加
- LaravelからRDSへの書き込み処理
Laravelから独自に追加したメッセージ取得、解析して、ジョブ(もしくは、独自の処理)を実行する方法がわからない状態です。
試した事、調べた事
Lambdaから直接、RDSへの書き込む。
LambdaでRDSを連携する場合、コネクション上限に達してしまう場合があるため現実的では無い。
スケジュール(Cron)でDynamoDBを監視して同期する処理を作る
RDSのDBに都度未同期のレコードがあるか検索する必要があるため、クエリの実行回数が多くなってしまいDBが重くなってしまいます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/11 06:25