8時間も集中して仕事していたらその晩強めの頭痛が・・・
やはりずっとディスプレイ見ているのはよくないなと思っていたら、もくだいさん に 『45分ごとに休憩を入れるといいらしいです』と教えていただきました。
なるほど、
これは Power Automate の出番だな!
ということで、45分おきに自動でTeamsのチャットに通知を送ってくれて、Stopボタンでいつでも止められる、そんなフローを作成してみました。
このような通知がFlow botからチャットに送られてきます。OK押せば5分の休息スタート、Stop押すと以降の通知が止まります。
フローの全体図は以下のとおりです。
ダウンロードできるようにGithubに置きましたので、以下からダウンロードして使ってみてください。
ポイント
1つのフローの中で繰り返し処理を行う (今回の場合は定期実行) 場合には、Do Untilのループが有効です。
「XXXの条件になるまで」 という感じでループが続きます。
定期実行をする場合には、ループの1回の処理時間をコントロールしたいわけですが、これを実現するために以下のような構成にします。
なんらかのメイン処理と並列してループ全体の処理時間をDelayアクションで追加しています。
これにより、1回のループが指定時間以下で終わることはなくなります。
カスタマイズ方法
今回は 45分経過で通知、5分の休憩 にしています。
これを変更したい場合には以下の箇所を変えてください
1. 経過時間45分の変更箇所
全部で4か所です。
通知促しメッセージには Adaptive Card 送信&応答を待機 のアクションを使っていますが、これのタイムアウトも忘れずに変更してください。
2. 休憩時間 5分の変更箇所
これは1か所だけです。Do untilの最後のアクションで5分の休憩を入れているので、ここを10分とか20分に変えてください。
おわり
定期実行はこれまでタイマー実行フローを使っていましたが、開始と終了をユーザーのタイミングで行いたいと思うと1つのフローに入れておくのが便利でした。
1フロー内で定期処理を行う場合、Apply to eachではなく Do untilを利用しますが、1ループでの実行時間制御が重要になります。
今回の方法、メイン処理と並行してDelay、は他でも応用できそうなので、何かのヒントになれば幸いです。
※いい感じのアプリがあるみたいです!
apps.apple.com