WP Mini Tips #4

 
WP Mini Tips #4

20141105-1

WordPress(WP)の予約投稿に感激した話。

以前は seesaaでブログを運営していましたが、seesaaの予約投稿は激しく遅れる事があったのです。
毎日 00:00 に新記事が開くようにしているのですが、10分や 15分遅れは当たり前。
酷いときには 1時間以上遅れる事もあり、ブログシステムとしてはなかなか良かったのですが、この点だけはガッカリしたものです。
その点 WPは確実に開くのですが、仕組み上なぜ予約投稿が出来るのかが不思議でした。

※WPはどこからもコントロールされない独立した仕組みだし、cronの登録をしている様子もなかった。

クロサギ #2

20141105-2

調べてみると目から鱗の方法で予約投稿を実現していました。
WPはタイマーやサーバーからの指示でオープンするのではなく、自身へのアクセスをトリガーとして予約投稿を開く処理をしてたんですね。

つまり、

1. 誰かがブログへアクセスする
2. データベースをチェックして予約投稿があればその日時をリード
3. 現在日時と比較して予約日時を超えていればフラグを変えて保存し、ブログへ表示する

これなら予約投稿日時に開いていたかの様に見え、開くのが遅れるって事は絶対に無いんですなぁ~ あったまええ~~~(笑)
レンサバで使えるCMSは全てこの様な処理をしているんでしょうね。知らなかったな~

投稿予定日時はデータベース(xx_posts テーブルの post_date フィールド)へ保存されているのですが、そこには秒まで記録されていました。
これは更新ボタンを押した時かなにかの秒が記録されているはず。
と言う事は 00:00 丁度には開かず、00:00:00~00:00:59 の間に開くという事ですかね。
ま、この程度の揺らぎは全く気になりませんね。なんせこれまでは 5分~1時間+αの揺らぎにイライラしていましたから(笑)

あ、データベースへアクセスできるので、00:00:53 の様に記録されたデータを 00:00:00 へ書き換えるなんて事も出来ますね。
そしたら 00:00:00 にアクセスした人でも開く事が出来、全く遅れの無いブログになります。
十数行の phpプログラムで実装出来るので、作っちゃうか?(笑)

今回の内容は Tipsではありませんが、WPネタと言う事で記事にしました。



  1. ask-evo

    そう、seesaaの時は遅れに遅れて、起きてる時は手動でやってましたw

    そのため、WPに移行して、さすがレンサバ、即時公開だと感動したものです。
    そしてこの仕組みを聞いて、あったまいいと思いました。
    これだと見に来た人への応答という通常の処理で公開が完了しますからね。

    負荷が集中しないし、デマンド処理なので、そもそもの処理が軽い。
    難しいことをやっているわけではなく、コロンブスの卵的発想でしょうか。

    1. delphian

      ask-evoさん、こんにちは。

      わははw 0時の手動更新、やってましたね~(笑)
      予約投稿しているのにアホな事してるな~ と思っていましたよ。

      この処理はホント、コロンブスの卵ですね。
      この事を知ったときは激しく感動しましたよ。

  2. teltel

    おはようございます。
    PCのことはあまり知識ないのでよくわかりませんが
    みなさんのブログを見てると、
    色んな事が自分好みにできて楽しそうですね。

    1. delphian

      teltelさん、こんにちは。

      WPは色んな事が出来て楽しいですよ。
      teltelさんもこの世界に来て欲しいなぁ~

  3. iMovie

    おはようございます。
    そうそう、予約投稿を毎日使っているのですが、どうやって処理しているのか不思議でした。
    ブログへのアクセスをトリガーにしているんですね。
    これだと、確実に動作しますね。
    レンサバ運用を前提に仕様が決められているんでしょうかね。
    サーバー負荷に関して、練られているような印象です。

    1. delphian

      iMovieさん、こんにちは。

      これには驚いたっしょ~(笑)
      単純で確実な公開処理、素晴らしいと思います。

  4. reota

    私なんか予約投稿できること自体に感動しました(笑)
    以前の無料ブログでは予約投稿機能すらなく、日付をわけるためにわざわざ日付が変わるのを待って投稿していたこともあります。
    優れた機能は多く、頻度は少ないもののリビジョンなんかも地味に役に立っていて、記事を大幅に書き直した後に、やっぱり最初の方がよかったという時がたまにあるんですが、しっかり残っていてくれてわざわざ思い出して書き直すなんてことがなくなりました。

    1. delphian

      reotaさん、こんにちは。

      ヤフーブログからだと予約投稿にも感激みたいですね。
      ヤフーブログは無料ブログの中でも最低機能ですからねぇ~(笑)
      WPは世界中で使われ、CMSの中では最もユーザーが多いシステムです。
      トップを取れるシステムはやっぱり違うなぁ~ という感じ。

  5. bluem

    こんにちは(^^
    全く気にもしてなかった事象ですw
    その道の人が疑問に思って見て、はじめて気付く事ですよね(^^
    単純だけど、賢い方法ですね。
    世の中、頭良い人っていっぱい居るなぁ~と、感心する毎日です(^^

    私でもレンサバにこれたので、teltelさんにも来て欲しいですよね♪

    1. delphian

      bluemさん、こんにちは。

      こういう事は気にしないのが普通だと思います(笑)
      職業柄システムを解析するのが楽しみなので、どうやっているんだろうと疑問が浮かんだんですね。
      言われてみれば単純な機能なのですが、00:00 にオープンするにはと考えるとどうしてもタイマー処理が頭から離れず、こういう発想には行きにくいんですよ(笑)

  6. jerry

    ほんと、頭イイ仕組みですね。
    予約投稿は助かりますね~
    yahooブログには無いんですね。
    地元の鳥の先輩YさんがヤフーブログですのでWPの世界にいざなってあげたい思いがメラメラです。

    クロサギ 近くていいな~

    1. delphian

      Jerryさん、こんにちは。

      いや~ WPはアイディアが詰まっております。
      ブロガーには最高のシステムだと思いますので、Yさんを是非とも誘って下さい。

  7. やすたろ~

    たとえ誰も見てくれないブログでも、
    自分が予約投稿を確認したくてアクセスしたら
    その瞬間に更新されてるわけですね。
    そして、アクセス数「1」をみて、「俺か~」となるんだ。

    確かに時間イコール”タイマー”と考えますから、発想の転換って大事ですね。

    1. delphian

      やすたろ~さん、こんばんは。

      そそそ、たとえば 13:50 に初めてアクセスしたのが自分でも 00:00 更新です(笑)
      それ以前の事は誰も知らないので、これが正義なんですなぁ~
      頭のいいやり方ですよね(笑)