EmDashのcron(1分ごとの定期処理)は何をしている?消してよいか
EmDashの wrangler.jsonc には1分ごとに動く cron が入っています。本体のプログラムを読んで分かった中身(予約記事の公開とキャッシュの入れ替え)と、消したときに困ることを説明します。
EmDash の雛形の wrangler.jsonc には、次の設定が入っています。
"triggers": {
"crons": ["* * * * *"]
}* * * * * は「毎分」という意味です。何のために毎分動いているのか、編集部は EmDash の Cloudflare 用の部品(@emdash-cms/cloudflare)のプログラムを読んで確かめました。
入口は src/worker.ts
雛形の src/worker.ts は、次の数行だけです。
import handler, { createScheduledHandler, PluginBridge } from "@emdash-cms/cloudflare/worker";
export { PluginBridge };
export default {
...handler,
scheduled: createScheduledHandler(),
} satisfies ExportedHandler;scheduled が、cron で呼ばれたときに動く部分です。
毎分やっていること
部品のプログラムでは、毎分次のことをしていました。
- 予約公開の時刻が来た記事を公開する
- 公開した記事について、Cloudflare に残っている古い表示(キャッシュ)を消す
- 公開した件数を記録に残す(「Published ◯ scheduled item(s)」)
部品の説明には「一般的な手入れ(general maintenance)」と書かれていて、予約公開はその中心です。
消してよいか
予約公開を使わないなら、消しても記事の表示には困りません。ただし、消すと予約した記事がいつまでも公開されないことになります。管理画面や CLI で予約公開を使う予定があるなら、残してください。