2022年6月16日木曜日

docker swarm で crazymax swarm-cronjob を使って定期処理をしている場合にスケジュールを変更する場合は label の張替えをしなければならない

docker swarm で crazymax swarm-cronjob を使って定期処理をしている場合にスケジュールを変更する場合は label の張替えをしなければならない

概要

過去に crazymax/swarm-cronjob を使って swarm 上で定期実行する方法を紹介しました

もしスケジュールを変更する場合は stack deploy し直せば良いのですが stack deploy ができなく service update などを使う場合はラベルの張替えが必要になるのでその手順を紹介します

環境

  • Ubuntu 18.04
  • docker 19.03.13

service update でラベルを張り替える

  • docker service update cronjob1 --force --label-rm "swarm.cronjob.schedule"
  • docker service update cronjob1 --force --label-add "swarm.cronjob.schedule=5 10 * * *"

削除 -> 追加の手順でやっていますが追加の手順だけでも上書きしてくれるので大丈夫だと思います

イメージの変更をしない場合は --force オプションがないとターミナルが戻ってこないので付与します

crazymax/swarm-cronjob のコンテナは再起動しなくても良さそう

自分はしばらく待っていると勝手に再スケジュールしてくれました
もし即時反映させたい場合はコンテナを再起動すれば良さそうです

参考サイト

0 件のコメント:

コメントを投稿