やられた……
さくら(のレンサバ)に人気ランキングの
データをぶっ壊された(激怒)。
CGIの処理時間に制限があって5分程度で打ち切られてしまうので
処理が終わらないで更新が飛んでしまうことが最近多かったけど
ランキングデータの保存の真っ最中に打ち切られてしまうとは。
ちなみに処理時間はAmazonへのリクエストの待ち時間が大半です。
※ランキングをアップした当初は10分ぐらい平気で動いてた
保存前か保存後なら打ち切られても更新が飛ぶ以外の実害はないけど、
まさに
ファイルの保存処理の途中で打ち切られてしまってるのでした。
1秒もかからない処理の途中で。
おかげで蓄積した順位データが破損して使えなくなってしまいました。
(今まで壊れなかったのは運が良かっただけかもしれん)
偶然にも1日少し前のデータが手元に有ったのでそれをアップしたけど。
1日ほどデータが巻き戻ってしまう悲しい状態に……
これからはファイル保存処理の途中で打ち切られることを想定して
保存が終了してから前のと差し替えるようにした方がイイのかな。
あと数回分の前のデータを念のために残しておいた方がいいかも。
ランクデータファイルが壊れると更新処理が動かなくなるので
1つ前だけ残ってれば大丈夫な気もしますが。
Amazonから返ってきたデータが壊れてて処理が途中で終わっちゃったり、
5分でスクリプトが打ち切られるから処理を何回にも分散してみたり、
で今度は
データが破損することを想定した対策をたてたり、とか……
本来の機能とは別のところに手間がかかりすぎでイヤになります。
と言うわけで今週のメインのブログパーツの話に続きます。
スポンサーサイト
以前から自サイトとブログに埋め込んでいたランキングのパーツですが、
やっと
一般向けで公開しても大丈夫そうな仕様になりました。
使う人にもメリットが有るようにしたので良かったら使ってください。
→
表示イメージ パーツの特徴 パーツの(貼り付け)ソース
パーツの使い方(FC2の場合) 表示内容を変える 表示の調整方法
※内容を一部移動・追加・修正しました。
■ この(プラグイン)パーツで何ができるか
最初にこの(プラグイン)パーツで何ができるかを改めて説明します。
※(プラグイン)パーツの解説なのでくどいようだけど悪しからず
これはAmazonのDVD/BDランキングデータを大量に収集して再構築した
放送中アニメの人気ランキングという私が運営してるサイトの内容を
ブログやサイトのサイドにパーツとして埋め込めるようにしたものです。
Amazonの公式パーツよりも
実態に近いランキングなのがポイントです。
実は埋め込みバージョン自体は3年近く前から有ったのですが……
サーバー負荷の問題と埋め込む人のメリットの関係で自分専用でした。
(ソースを見てパクれば埋め込めたけど仕様は公開してませんでした)
今回、
埋め込む仕様を根本的に変えることでその問題を解消しました。
にしても当初のパーツ公開の予定からどんだけ遅れてんだか(汗)。
自分専用版から大きく変わったのは以下の二つのポイントです。
(1) 自分専用版では毎回表示するたびにスクリプトを生成したけど
一般公開版は(30分毎の)
定期更新でスクリプトを生成するようにした。
これで利用する人が増えてもサーバー負荷はあまり問題にならない(はず)。
利用者が増えたら使い物にならなくなるなんて間抜けすぎるからね。
(2) 自分専用版ではパラメータに従って毎回リストを生成してたけど、
一般公開版はJavaScriptを使って
ブラウザ側で改変するようにした。
結果的に画面デザインも含めて従来より設定で変えられる要素が増えた。
特にAmazonアソシエイトIDを設定できるようになったのが大きいかも。
(キャシュ機構とそのパラメータ書き換えの両立で悩んでました)
■ (プラグイン)パーツの表示イメージ
表示イメージは以下のとおり
------------ここから-------------
------------ここまで-------------
■ (プラグイン)パーツの特徴
この(プラグイン)パーツには以下の特徴が有ります。
(1) 30分毎に自動的に
最新のランキングに更新されます。
(2) 人気ランキングは今期(の新番組)・今期と前期・ここ1年の3種類で
並び順は現在の順位か1週間の平均順位のどちらかが選べます。
(4) 表示するジャケ絵の数を設定できます(0から15まで)。
(3) ランキングのリンクに
AmazonのアソシエイトIDを設定できます。
(4) スタイルシートを変更しなくても簡単な見た目の調整ができます。
(5) FC2のプラグインとして利用する場合は
ほぼそのままで使えます。
■ (プラグイン)パーツの貼り付けソース
まず(プラグイン)パーツを貼り付けるソースです。
以下をそのままサイドバーとかに埋め込めば使えます。
※
JavaScriptが使える必要が有ります
ブログ毎の具体的な使用方法はこの下にあります。
■ プラグインの設定方法(FC2の場合)
FC2のブログに追加する場合は以下のとおりです。
(1) 共有プラグインの追加で「放送中アニメの人気ランキング」を検索する。
(2) プラグインをダウンロードする。
(3) プラグインの詳細で表示内容を調整する
タイトルが長い場合は「アニメ人気ランキング」とかそんな感じに。
表示内容を変えたりデザインの調整をする場合は
プラグインの改造(HTML編集)から直にソースを書き換えてください。
※そのうち質問回答形式で一部を設定できるようにするかも。
■ プラグインの設定方法(FC2以外)
気が向いたら追記するかも。
■ (プラグイン)パーツの表示内容を変える
表示内容を変えたい場合はソースの以下の部分を書き換えてください。
※範囲外のパラメータを指定した場合は初期値になります。
shunlist.
range =0;
shunlist.
sortmode ='rank';
shunlist.
image =5;
shunlist.
assid ='アソシエイトID';
rangeは人気ランキングの集計範囲です。1(クール)で今期(の新番)のみを、
2で今期と前期を、4でこの1年を対象にします。0はランダム表示になります。
sortmodeは並び順です。rankで現在順位にaverageで平均順位になります。
averageの方がそれっぽくなりますが順位変動が少なくて面白くないかも。
imageはジャケ絵を表示する数です。0でジャケ絵なしになります。
ランキングは15位までなので0~15を指定してください。
assidはAmazon.co.jpのアソシエイトIDです。自分のを設定してください。
持ってない場合は私のID(aaa0e0b-22)を書いて頂けると喜びます(おい)。
ちなみにここを空白('')にしておくとアソシエイトIDはつきません。
■ (プラグイン)パーツ表示の調整方法
大概の場合はそのままでも使えますが、テンプレートやデザインにより
表示に不具合が出る場合があります。その場合の調整方法について。
※意味がわからない場合は下手にいじらないように
(プラグイン)パーツのソースの以下の部分が表示を調整する箇所です。
shunlist.
nolistmark =false;
shunlist.
nolistbgimage =true;
shunlist.
imageoffset ='20px';
shunlist.
noimageborder =true;
nolistmarkはランキングリストにリストマークを出さなくする設定です。
リストマークがウザイと感じた場合はtrueにすれば消えるはずです。
nolistbgimageはリストの背景が抜ける場合にfalseに変えてください。
※IE(IE6)以外では症状が出ないと思われる
通常はtrueにした方が意図したデザインに近くなるはずです。
一部にアンカーの背景画像をリストマークにするテンプレートがありますが、
そのへんを自動調整すると副作用が大きいので自分でCSSを変えてください。
imageoffsetはジャケ絵イメージの左オフセット(margin)です。
表示位置を微調整したい場合はここを変えてください。
左margin以外はスタイルシートのままなので自分でCSSを設定してください。
noimageborderをtrueにするとジャケ絵イメージの枠を消します。
ボーダースタイルを変更して欲しくない場合はfalseにしてください。
nolistmark、
nolistbgimage、
noimageborderの全てをfalseにすると
内部処理でのスタイル変更が必要最低限になります。
ちなみにFC2の公式・共有テンプレートでざっと試してみた限りは
好みでリストマークをON/OFFする以外は
大半がそのままで大丈夫でした。
もしも使用する人が多くなって見た目の調整を期待する人が増えたら
CSSで調整し易いように出力するタグ構造の説明を書いたりするかも。
その気が有る人ならソースを見れば済んだりしますが。