それでも気分は高専生

元高専生が自分のやってきたことを記事として残すためのてきとーなブログ

AWS SQSを使ったJobQueueシステムを組んでみた

サンプル実装

github.com

モチベーション

SQSを使ったジョブキューシステムをつくってみたかった

(実装コストとかの肌感を知りたい)

実装したもの

処理の流れは以下の通り。

  1. Publisherがランダムな整数を生成
  2. SQSにジョブとしてメッセージを投げる
  3. Subscriberがジョブを受け取り、1で生成した整数を素因数分解
  4. SubscriberがDynamoDBに結果を登録

(大した計算時間になっていなくて、ジョブキューシステムの適切な例なのか?と問われるとモゴモゴ...)

簡単に動作、理解できるようにAWS環境はlocalstackで再現し、プログラムはPythonで書いた。

得られた知見

複数のSubscriberがいる場合や、バグや異常なメッセージの取り扱い

このあたりの複雑な機構がSQS + boto3だとかなりお手軽に実装できて良き。