Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
個人開発でconnpass_apiの制限と闘った話.pdf
Search
takumi
February 03, 2024
Technology
1
200
個人開発でconnpass_apiの制限と闘った話.pdf
takumi
February 03, 2024
Tweet
Share
More Decks by takumi
See All by takumi
エンジニアイベントを地図上で検索できるサービスを開発した話
takumi_pro
0
53
Other Decks in Technology
See All in Technology
Agile Leadership Summit Keynote 2026
m_seki
1
680
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
150
Agent Skils
dip_tech
PRO
0
140
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
1
170
マネージャー視点で考えるプロダクトエンジニアの評価 / Evaluating Product Engineers from a Manager's Perspective
hiro_torii
0
190
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
520
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
190
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
150
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
From π to Pie charts
rasagy
0
130
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
Odyssey Design
rkendrick25
PRO
1
500
Practical Orchestrator
shlominoach
191
11k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
The browser strikes back
jonoalderson
0
420
Google's AI Overviews - The New Search
badams
0
910
Done Done
chrislema
186
16k
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
470
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の制限をバッチ処理で回避した • 今回は小規模なものだったが、課題を技術で解決する体験が できた
ご清聴ありがとうございました!