(Bubble)日次バッチを定期実行する

はじめに

定期的に、たとえば毎日決まった時刻に、同じ処理を実行したい時があります。例えば、新規登録者にサンクスメールを送るなどです。毎日同じ処理を実行するので「日次バッチ」と呼ぶこともあります。
Bubbleでは、有料プランに契約し、Backend workflowを使うと実現できます。

有料プランに契約する

日次バッチを実現したいアプリを、有料プランに契約します。

Bubble の左メニューの「Setting」ー「App Plan」から契約状況を確認します。

Backend workflowsで、custom eventを追加

Bubbleの画面の左上の、ページ名が表示されている部分をクリックし、一番下の「Backend workflows」をクリックします。
これは有料プランでないと表示されません。

「Click here to add a backend workflow」をクリックし、「Custom」ー「Create a custom event」をクリックして、eventを追加します。

イベント名を設定します。今回は「send thanks mail」としました。

custom eventにactionを追加

通常のworkflowと同じように、Actionを追加します。
今回は、新規にユーザ登録した人にメールを送信する処理にしました。

範囲を、昨日の6時から今朝の6時までの間に登録したユーザーにしました。

API Workflow作成して、上記のeventを呼び出す

「General」ー「New API workflow」で、API Workflowを追加します。


今回は、「call send thanks mail」という名前にしました。

アプリ外部から呼び出す必要はないので、「Expose as a public API workflow」のチェックを外します。

User テーブルにはプライバシーポリシーが設定されていて、自分のレコード以外は見られないようになっていますが、全てのUserのレコードを見たいので「Ignore privacy rules when running the workflow」のチェックを入れます。

そして、Actionに「Custom events」ー「Trigger a custom event」を指定し、「Custom event」に、上記で作成した「send thanks mail」を指定します。

翌日に自動実行するActionを追加する

毎日実行したいので、翌日に自動実行する処理を追加します。
Action に「Custom Events」ー「Schedule API Workflow」を選択します。


「API Workflow」には、上記の「call send thanks mail」、
「Scheduled date」には、翌日の午前7時を設定しました。
上記と同じく「Ignore privacy rules when running the workflow」にチェックを入れます。

初回実行用のボタンを作成する

繰り返し実行する処理はできましたが、最初の一回は手動で起動する必要があります。
管理者専用の画面を作成し、初回実行用のボタンを配置します。

今回は、Userテーブルに管理者か否かのフラグを追加し、ログインしているユーザが管理者でない場合は別な画面に遷移するようにしています。
今回は、「batch-manage」というページ名で作成しました。

画面にボタンを配置します。

ボタンを押した時に、上記のAPIを呼び出す処理を指定します。
「Custom Events」ー「Schedule API Workflow」を選択します。

「API Workflow」には、上記で作成したAPIの「call send thanks mail」、
「Schedule date」は、すぐに実行したいので「Current date/time」を指定します。

手動で初回実行

1度だけボタンを押して、実行します。

今回の例ではメールが送信されてしまうので、ダミーユーザーにしておくのを忘れずに!

動作結果の確認

実行結果は、左メニューの「Logs」ー「Server logs」で表示できます。
表示されない場合は、右上の「Search」をクリックしてください。

また、次回起動のスケジュールも追加されています。
「Logs」ー「Scheduler」で確認できます。
表示されない場合は、「Show」をクリックしてください。
Scheduled timeが、指定通りに、翌日の午前7時になっているのを確認します。

スケジュールをキャンセルしたい場合は、左側の「 Cancel」をクリックして、キャンセルします。

まとめ

有料プランで、Custom eventとAPI Workflowを作成し、
「Schedule API Workflow」を使って、定期的に実行する方法を紹介しました。
定期実行は実運用には欠かせない処理ですので、参考になさってください。

コメントを残す

メールアドレスが公開されることはありません。