1. TOP
  2. Webサービス
  3. PHP
  4. PHPとMySQLを使ってTwitter APIで取得したツィートの追加と削除を繰り返す(その5~crontabコマンドとif文の組み合わせ)

PHPとMySQLを使ってTwitter APIで取得したツィートの追加と削除を繰り返す(その5~crontabコマンドとif文の組み合わせ)

php

4回にわたって、Twitter APIで取得したツィートの追加と削除を繰り返すための記事を書いてきました。

ですが、ここにきて、「その2」の概念図を修正しなければならないことに気が付きました。

「一定時間」の欠点

tweet_add_delete1

一定時間内に決まった数を追加・削除することには、2つの「欠点」が存在します。

  • 一定時間内のツイートが多くなると、最新のタイムラインが表示されなくなる(リアルタイム性が欠ける)
  • 一定時間内のツイートが少なくなると、タイムラインが乏しくなる(コンテンツの貧弱化)

この2つの欠点を補うためには、時間だけで更新するのではなく、レコード件数でも更新をかける必要があります。

crontabコマンドとif文の組み合わせ

tweet_add_delete3

2枚目のスライド画像は、2つの欠点を補う概念です。スライド画像の説明書きをテキストにしておきます。

  • a.30分おきに10件追加→10件追加→20件削除
  • b.レコード件数が100件に到達したら削除

時間によっては、データベースの件数は変わりますが、それでも一定件数内にしておくという考え方です。

もう少し詳しく説明すると、

  • 30分毎の追加動作は、crontabコマンドでを使用する
  • 削除動作は、PHPもしくはMySQLでif文を設定し自動削除する

ということになります。今回の例では、非常に粗いタイムラインになると思います。

ですが、「30分」・「10件」・「20件」という数字に関するところを変更すれば、先に挙げた「欠点」を補えると考えます。

if文について

ここで注目するのは、if文における条件内容です。プログラミングチックに書くと、このような感じになるでしょう。

しかしながら、現状では2つの問題が存在します。

  • その条件文はPHPとMySQLのどちらで記述するべきか
  • 「120件で自動削除」という判定はどのように書くか

自分一人で考えても思いつかないので、オフライン上で詳しい方に尋ねることにします。