はじめに
GS2-Schedule はゲーム内のイベントのスケジュールを管理するマイクロサービスです。
スケジュールには全てのプレイヤーが同じ期間をイベント期間とする絶対期間や、チュートリアル終了後24時間のようなプレイヤーごとに異なる相対期間の期間を設定することが可能で、
さらに、期間中に毎週月曜日だけイベント期間とするような繰返しの設定が可能です。
機能追加の背景
繰返し設定には「毎日」「毎週」「毎月」といった条件を設定できました。
今回これに加えて「X日開催し、Y日非開催日」というのを順番に繰り返す繰返し設定はできませんでした。
追加された機能の詳細
開催日数Xと、非開催日数Y、さらに「繰返しの基準日時」を設定することで、その基準日時からX日開催、Y日非開催日と繰り返すことができます。
例えば以下の設定をしたとします。
基準日時:2024/01/01 10:00
開催日数: 3
非開催日数: 2
この場合は下記のようになります。
ループ回数 | 状態 | 期間 |
---|---|---|
0 | 開催 | 2024/01/01 10:00 - 2024/01/04 10:00 |
0 | 非開催 | 2024/01/04 10:00 - 2024/01/06 10:00 |
1 | 開催 | 2024/01/06 10:00 - 2024/01/09 10:00 |
1 | 非開催 | 2024/01/09 10:00 - 2024/01/11 10:00 |
基準日時はあくまで繰返しの基準を定める日時で、開催期間とは直接関係しません。
そのため、以下のような設定も有効です。
開催期間(絶対) 2023/12/29 00:00 - 2024/01/08 00:00
基準日時:2024/01/01 10:00
開催日数: 3
非開催日数: 2
この場合は下記のようになります。
ループ回数 | 状態 | 期間 |
---|---|---|
0 | 開催 | 2023/12/29 00:00 - 2024/01/30 10:00 |
0 | 非開催 | 2023/12/30 10:00 - 2024/01/01 10:00 |
1 | 開催 | 2024/01/01 10:00 - 2024/01/04 10:00 |
1 | 非開催 | 2024/01/04 10:00 - 2024/01/06 10:00 |
2 | 開催 | 2024/01/06 10:00 - 2024/01/08 00:00 |