記事一覧

EmDashのcron(1分ごとの定期処理)は何をしている?消してよいか

EmDashの wrangler.jsonc には1分ごとに動く cron が入っています。本体のプログラムを読んで分かった中身(予約記事の公開とキャッシュの入れ替え)と、消したときに困ることを説明します。

EmDashのcron(1分ごとの定期処理)は何をしている?消してよいか

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 で呼ばれたときに動く部分です。

毎分やっていること

部品のプログラムでは、毎分次のことをしていました。

  1. 予約公開の時刻が来た記事を公開する
  2. 公開した記事について、Cloudflare に残っている古い表示(キャッシュ)を消す
  3. 公開した件数を記録に残す(「Published ◯ scheduled item(s)」)

部品の説明には「一般的な手入れ(general maintenance)」と書かれていて、予約公開はその中心です。

消してよいか

予約公開を使わないなら、消しても記事の表示には困りません。ただし、消すと予約した記事がいつまでも公開されないことになります。管理画面や CLI で予約公開を使う予定があるなら、残してください。

関連記事