teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2021/05/20 02:50

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -14,6 +14,6 @@
14
14
 
15
15
  最初に訪れたユーザーに実行させるのは色んな意味でお勧めできません。(そういう実装のアプリケーションが存在しない訳ではありませんが)
16
16
 
17
- ただ、DB設計としてそのような作業が必要なケースというのはそれなりに限られるので、今回のケースがcron等で対応するのが適切かどうかはわかりません。
17
+ ただ、DB設計としてそのような作業が必要なケースというのはそれなりに限られるので、今回のケースがcron等で対応するのが適切かどうかはわかりません。(余程深刻な事情がある場合以外は不適切だと思います)
18
18
 
19
19
  そのため、先に定時での洗い替えが必要にならないDB設計を検討するのが良いかもしれません。

2

追記

2021/05/20 02:50

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -6,6 +6,14 @@
6
6
  といった形かなと思います。
7
7
  `php cron 自動実行`あたりをキーワードにして調べてみるとイメージがつきやすいかと思います。
8
8
 
9
+ レンタルサーバーなどでcronやCLIが使えない場合は、
10
+ 1. 定時タスク用のアプリケーションを作る(複雑で長いパスにし、認証をかけるなどして一般の人が叩けないようにする)
11
+ 2. 1で設定したURLを定時に叩くような外部サービスを利用する(使ったことは無いですが`cron-job.org`などのサービスがあるので、要件に合わせて選定)
12
+
13
+ という方法もあります。
14
+
15
+ 最初に訪れたユーザーに実行させるのは色んな意味でお勧めできません。(そういう実装のアプリケーションが存在しない訳ではありませんが)
16
+
9
17
  ただ、DB設計としてそのような作業が必要なケースというのはそれなりに限られるので、今回のケースがcron等で対応するのが適切かどうかはわかりません。
10
18
 
11
19
  そのため、先に定時での洗い替えが必要にならないDB設計を検討するのが良いかもしれません。

1

追記

2021/05/20 02:49

投稿

tanat
tanat

スコア18778

answer CHANGED
@@ -1,6 +1,6 @@
1
- くある方法としては
1
+ くある方法としては
2
2
 
3
- 1. CLIで動くアプリケーションとして作成する
3
+ 1. CLIで動くアプリケーションとして作成する(`php cli アプリケーション`あたりで検索してみて下さい)
4
4
  2. cronやタスクスケジューラーといった、OSが提供する機能を使って1のアプリケーションを定時(この場合だと毎月1日の0時に実行)に実行する
5
5
 
6
6
  といった形かなと思います。