てけもぐ Tech 忘備録

Cloudflare workers で 周期的なプロセスの立ち上げ

対象読者

ウェブサービス開発初心者

解決すること

crond みたいに周期的に実行して欲しいプロセスがあったとしても、サーバーインスタンスを何処かに持つならいいけれど、大抵お金がかかる。その解決方法

内容

今や Web サービスはマイクロサービスが当たり前の様に。どこかにサーバープロセスを専有で立てて定期的な処理をするなんて、なかなか高価な部類に入ってきたのかお金がかかりますよね。その代わりにある程度であれば、DB であれ静的ページであれ無料のものが結構あるし、おまけに短時間なら都度のプロセスまでタダである。

で、困っていたのがプロセスをキックする仕組みで。 Webアプリならクライアント側からアクセスして貰えば、そこから全ての処理が進むと言う過程も考えられますけど、データをゴニョゴニョしようと思うと、どこかでキックしてもらわないといけない。サーバーインスタンスをどこかで持つともちろん出来るけども、お金がかかる...。

どうにかならないかと思っていたら、Cloudflare workers にトリガー機能があるのを知りました。crontab 設定で workers を起動してくれる。以前、heroku がまだ無料枠を提供していた頃、uptimerobot とかで定期的に起こしていたのから比べると進歩というか太っ腹というか。

この辺から読んでいただけると分かるかと。

Cloudflare 側がトリガーの設定に従って schedule() ハンドラーを呼んで来るので、そこにやることを書くだけ。

DB もあるし Pages もあるし、もう出来ないことがない気がします。