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
定時実行の設定が難しいから、 仕組みで解決をしている話
Search
Hayato Nakamura
September 11, 2024
0
110
定時実行の設定が難しいから、 仕組みで解決をしている話
CRMシステムで利用している定時実行。
cronの設定についてお話しました。
Hayato Nakamura
September 11, 2024
Tweet
Share
More Decks by Hayato Nakamura
See All by Hayato Nakamura
呼び出し順で、 売上金額を回収できなくした話
chikin14niwa
0
73
N+1はダメなのか? システムを落としたあの日より
chikin14niwa
0
29
重要だけど、 よく忘れる仕様との付き合い方
chikin14niwa
0
88
Sessionの衝突から学んだPHPのSession作成方法 @CakeJP 2023/12/13 エンジニア小話会 PHPを語り合おう
chikin14niwa
0
370
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
A better future with KSS
kneath
239
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Faster Mobile Websites
deanohume
309
31k
Become a Pro
speakerdeck
PRO
29
5.5k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Bash Introduction
62gerente
615
210k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Transcript
© Cake.jp Co.Ltd. All Right Reserved.|Confidential 2024/09/11 定時実行の設定が難しいから、 仕組みで解決をしている話
2 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 自己紹介 • 名前
◦ 中村 隼人 • 業務 ◦ バックエンドエンジニア(PHP/Kotlin/TypeScript) • おすすめ🍰 ◦ 子どもが野菜を食べてくれる ◦ 大人が食べてもおいしい
3 © Cake.jp Co.Ltd. All Right Reserved.|Confidential CRM(Customer Relationship Management) 顧客関係管理のこと。
Cake.jpでの代表例 一度購入いただいた会員様に再度ご購入いただけるように働きかけること Cake.jpのCRMを支える環境について紹介
4 © Cake.jp Co.Ltd. All Right Reserved.|Confidential Cake.jpでは主に2つの方法で、お客様に連絡を実施。 • 24/365で動くEC2のcron
• ECSタスクスケジューラ Cake.jpのCRMを支える環境について紹介
5 © Cake.jp Co.Ltd. All Right Reserved.|Confidential cronとは・・・Unix系OSのジョブ管理ツール cronの書式 ※AWSのcron式は「年」も必須
定期実行に cronを利用
6 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 数値は固定値の他、ワイルドカードなどを利用できる。 定期実行に cronを利用
7 © Cake.jp Co.Ltd. All Right Reserved.|Confidential ※AWSのcron式は日と曜日の両方がワイルドカードの場合、片方を? にしなければなら ない。
定期実行に cronを利用
8 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 毎月10日16:00に実行するcronの設定を実施 実際におきた事例
9 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 毎月10日16:00に実行するcronの設定を実施 実際におきた事例 ↑
分の設定をワイルドカードで指定してしまった
10 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 毎月10日16:00に実行するcronの設定を実施 実際におきた事例 ↑
分の設定をワイルドカードで指定してしまった 10日の16時台に毎分バッチが実行。 バッチの特性上、1分毎に同じメールが同じ会員様に発送された。
11 © Cake.jp Co.Ltd. All Right Reserved.|Confidential • レビューがcronの書式のみで、最終的にどういうふうに設定されているかを確認し ていなかった。
◦ 検証環境が用意されていたが、使われていなかった。 失敗からの学び
12 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 1. 外部ツールを使って、cron式を視覚的に確認している。 https://crontab.guru/#5_0/2_*_8_*
を使ってます。 AWSの?の書式に対応していないので、そこだけ書き換えが必要。 cron式が正しく動作していることを検証しているためしていること
13 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 2. AWS EventBridge
> ルールから設定内容を確認 ローカルタイムゾーンで確認できるので安心 cron式が正しく動作していることを検証しているためしていること
14 © Cake.jp Co.Ltd. All Right Reserved.|Confidential 1. Cake.jpではインフラ専従者でないものがcron式を触る必要がある。 a.
確認方法をチームで共有し、ルール化した。 まとめ
15 © Cake.jp Co.Ltd. All Right Reserved.|Confidential ご清聴ありがとうございました。 アイコンは https://icons8.jp/
のものを使用しました。