MT5カスタマイズ:CORESERVER.JPのcronで指定日公開&公開キュー設定

xrea+のMT4から、サーバをcoreserverに引っ越して、MT5にアップデートしました。

引越し、カスタマイズなどの作業のメモです。

xrea+の有効期限をかなり残しての引越しを決めたのは、再構築が完了できなくなってきたためです。

一時はダイナミックパブリッシングも試したけど、若干遅いような気がしたので、そのまま使うのはやめました。チューンするならちゃんと再構築できるようにしようと、モジュールの構造の見直しとか、MTIncludeではなくて、phpのインクルードを活用するとか、ブログ記事公開時の再構築の時間がかかる対策に、一部のインデックステンプレートやアーカイブテンプレートを公開キューにするとかで、それなりにストレスなく過ごしてました。

しかし、ここ2ヶ月ほどは、cronジョブが途中で止められてしまうようで(ジョブの最大実行時間は3分)エラーが出るようになったり、mt-search.cgiが実行できなかったり(検索結果のページや、タグの記事一覧がエラーになる)、さらに最近は管理画面が表示できないことも・・・。

有料の権利を移せるxreaの他のサーバに引っ越そうかと思ったのですが、仕様を見たところほかもほぼ同じ。他のレンタルサーバを探さなきゃと思っていたところに、CORE-MINIプランのサービス開始の案内があったので試用してみたところ、再構築の状況がずいぶんよくなるので、管理画面も使い慣れたものだし、引っ越しちゃおう、というような流れです。

改善するとはいえ、記事公開時の再構築は待たされる感じがするので、カテゴリアーカイブ、月別アーカイブ、インデックステンプレートで作っているサイドバーの再構築は公開キューにしてしまおうと。これらは、記事の公開に対してはリアルタイムの更新じゃなくなりますが、その点は、記事を公開した時の再構築の速さのために、割り切れます。

指定日公開や公開キューの実行のためのrun-periodic-task スクリプトを定期的に実行する設定をしました。

指定日投稿や公開キュー等のスケジュール処理の設定 | Movable Type 4 ドキュメント

Movable Type では、指定日投稿や迷惑コメント/トラックバックの削除、公開キュー等のスケジュールタスクを拡張しており、次のさまざまな方法でスケジュールタスクを実行できます。

* cron や Windows タスク・スケジューラを利用した run-periodic-tasks スクリプトの実行

* ログ・フィードの取得時に実行

* XML-RPC API で拡張された mt.runPeriodicTasks の利用

MT5のドキュメントからも上記のMT4のドキュメント内のページがリンクされているんですね。

CORESERVER.JPで使えるcronは、管理メニューの「cronジョブ」で、「分・時・日・月・曜日」と実行するシェルスクリプトを指定します。最短で1時間単位。xreaと同じ設定方法ですね。ジョブの最大実行時間も同じ3分。

シェルスクリプトの内容はこういったもの。

#!/bin/sh

cd /path/to/mt

/usr/local/bin/perl ./tools/run-periodic-tasks

exit

path/to/mtはmtのアプリケーションディレクトリのことです。

この記事が公開されていたら、設定がうまくいったということ。公開されてますように・・・。