Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
個人開発でconnpass_apiの制限と闘った話.pdf
Search
takumi
February 03, 2024
Technology
210
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
個人開発でconnpass_apiの制限と闘った話.pdf
takumi
February 03, 2024
More Decks by takumi
See All by takumi
エンジニアイベントを地図上で検索できるサービスを開発した話
takumi_pro
0
60
Other Decks in Technology
See All in Technology
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
PRO
0
440
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
2
150
Classmethod Company Deck
satoshi7
1
740
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
240
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
4
620
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
120
Browser Spec: Testing Hotwire with Ruby
takahashim
1
130
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
210
その Valkey 使いこなしていますか?
onk
PRO
5
1.6k
大型犬好きによるPugの紹介
yamanoku
1
160
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
130
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
420
Raft: Consensus for Rubyists
vanstee
142
7.8k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
The Language of Interfaces
destraynor
162
27k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Paper Plane
katiecoart
PRO
5
54k
Transcript
個人開発でconnpass apiの 制限と闘った話 takumi 2024年2月3日 エンジニアの輪 at 東京
自己紹介 • takumi(@takumidiary) • 新卒2年目エンジニア • バックエンド開発メイン ◦ フロント、インフラも
何発表するの? • 個人開発でconnpass apiを使用した際に出くわした制限とそ れにどう対応したのかを発表します
作っているもの
DevLocator(開発中) • エンジニアイベントを地図上に表示するサービス • connpassからイベント情報を取得
なぜ開発しようと思ったか • connpass利用頻度が多くなったためconnpass apiを使って 何か作ってみたかった • 最近はオフライン開催も増えてきたので視覚的にイベント開 催がわかるといいなと思った
制限との出会い
イベント情報取得の要件 • その日から1ヶ月分のイベント情報を取得 ◦ 2/3〜3/3、10/31〜11/30 • 一度の読み込み(リクエスト間隔をあけない)で全イベントを表 示
当初の想定 • connpass apiを使用して取得したイベントをそのまま表示す ればいけるじゃん!
開発開始! • 早速、apiリファレンスを確認してみる • そこには想定していなかった制限が、、
connpass apiの2つの制限
2つの制限 • 1リクエストで取得できるイベント数 • リクエスト間隔
1リクエストで取得できるイベント数 • 最大でも100件しか取得できない • 1ヶ月分のイベント情報 → 約1000件
リクエスト間隔
robots.txtとは? robots.txt ファイルとは、検索エンジンのクローラーに対して、サイト のどの URL にアクセスしてよいかを伝えるものです。 https://developers.google.com/search/docs/crawling-indexing/robots/intro?hl=ja
リクエスト間隔
リクエスト間隔 • Bingクローラに対する制限 • 20秒のクロール間隔 • /series/output/, /account/, /event/ へのアクセスを禁止
リクエスト間隔 • Amazonクローラに対する制限 • /user/, /event/へのアクセス禁止
リクエスト間隔 • 全クローラに対する制限 • 5秒のクロール間隔 • /series/output/, /account/へのアク セス禁止 今回の場合ここに該当
リクエスト間隔 今回はクローリングではなくapiコールだが、 apiサーバに負荷をかけたくない リクエスト間隔を最低5秒空ける
制限によって発生した課題
制限によって発生した課題 • 全イベント(1ヶ月分)を地図上に表示するのに時間がかかっ てしまう ◦ 5秒ごとに100件ずつ取得するため
どのように対応したか?
バッチ処理
バッチ処理の要件 • 目的 ◦ connpass apiから1ヶ月分のイベント情報を取得してDBに 保存する
バッチ処理の要件 • 既にDBにデータがある場合は全削除する ◦ データを最新に保つため • 100件ずつ6秒ごとにイベント取得apiをコール • 取得したデータをDBに保存 •
毎日午前3:30に実行
技術構成 • メイン処理:Cloud Run jobs • 定期実行:Cloud Scheduler • DB:Planet
Scale
構成図 connpassから情報取得して保存
構成図 定期実行
バッチ処理実行詳細
まとめ • connpass apiの制限をバッチ処理で回避した • 今回は小規模なものだったが、課題を技術で解決する体験が できた
ご清聴ありがとうございました!