fluxflexでcronを使ってタスクスケジューリング

fluxflexでは、公式にcronが使えるとも使えないともアナウンスされていません(たぶん)。

いろいろ試してみた結果「使える!」ということがわかったので、手順をまとめておきます。

なお、(たぶん)公式にアナウンスされていない機能であるため、いずれ使えなくなる可能性もありますのでご注意ください。

手順

  1. fluxflex_admintoolsをインストール
  2. ajaxtermから管理用パスワードを設定
  3. flxcronからcrontabを設定

fluxflex_admintoolsをインストール

fluxflexのプロジェクト管理画面で「Setup」→「One Click Install」→「Shared」を選びます。

「fluxfle_admintools」の「Install」ボタンをクリックします。

Shared

ajaxtermから管理用パスワードを設定

インストールが終わったら、

https://[プロジェクト名].fluxflex.com/ajaxterm/ajaxterm.php

を開きます。

basic認証ダイアログが開くはずです。

ユーザー名に「admin」、パスワードに「12345」と入力して下さい。

そうすると、terminalっぽい画面が立ち上がります。

ajaxterm

ちょっと灰色になった部分に何らかのコマンドを打ち込んでEnterを押せば、その結果が返ってきます。

以下のコマンドを入力し、初期パスワード「12345」を変更します。

perl -e 'print "admin:".crypt("[任意のパスワード]","aA")."n";' >/home/[プロジェクト名]/.htpasswd

flxcronからcrontabを設定

https://[プロジェクト名].fluxflex.com/flxcron/flxcron.php

を開きます。

basic認証ダイアログが開いたら、ユーザー名に「admin」、パスワードには先ほど設定したパスワードを入力して下さい。

flxcron

味も素っ気もない画面が開きます。

入力エリアにcrontab的な記述をします。例えば…

0 * * * * date >/home/[プロジェクト名]/public_html/date.txt
5 * * * * /usr/bin/wget http://www.yahoo.co.jp --output-document=/home/[プロジェクト名]/public_html/yahoo.html

こんな感じ。

入力が終わったら「submit」ボタンを押せば、タスクが登録されます。

crontabの記述については、適宜検索してください。

注意事項(2011/09/08追記)

crontabでいろいろ実行できますが、パスは/binくらいにしか通っていないっぽいです。コマンドをフルパスで書くか、もしくは

*/5 * * * * export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin ; wget ...

みたいに適宜パスを通しておくと良さげ。

また、ajaxtermでdateと打ってみるとわかるのですが、fluxflexサーバーの時計が実際の時刻とちょっとずれているかもしれません。

ジョブの実行時刻をシビアにコントロールしたい場合は注意したほうが良いかも。