November 6, 2009

delayed_job の使い方(中途半端)

delayed_job の使い方をちょっとだけ調べた(プロジェクトの wiki 読んだだけだけど)。
調べた結果、今回やりたいこととは若干合わない感じだったので結局使わないことにした。

delayed_job
http://github.com/tobi/delayed_job

プライオリティを指定してジョブを登録する

“1″ がプライオリティ。
デフォルトは “0″。

Delayed::Job.enqueue(NewsletterJob.new('text', User.find(:all).collect(&:email)), 1)

時間を指定してジョブを登録する

“5.minutes.from_now” とすることで 5 分後にジョブを実行するように指定できる
“0″ はデフォルトのプライオリティ。

Delayed::Job.enqueue(NewsletterJob.new('text', User.find(:all).collect(&:email)), 0, 5.minutes.from_now)

設定

最大試行回数(MAX_ATTEMPTS)等を指定することができる。

# config/initializers/delayed_job_config.rb

Delayed::Job.destroy_failed_jobs = false
silence_warnings do
  Delayed::Job.const_set("MAX_ATTEMPTS", 3)
  Delayed::Job.const_set("MAX_RUN_TIME", 5.minutes)
end
January 8, 2009

Termtter Tips – plugin プラグイン

近況

すごいペースで Termtter の開発が進んでいます。
http://github.com/jugyo/termtter/tree/master

コミッターの数も増えました。
現在、以下の方々が開発に参加しています(ありがとうございます!)。

あと、Twitter にコミットログを流すようにしました。
http://twitter.com/termtter

それと、Lingr にチャットルームを作りました(ujihisa さんが)
http://www.lingr.com/room/termtter

今日の Tips

さて今日の Tips ですが、plugin プラグインを紹介したいと思います。
plugin プラグインは、termtter 起動中にプラグインを読み込むためのプラグインです。
とりあえずこのプラグインさえ読み込んでおけば後でなんとでもなります。

plugin プラグインを有効にするには ~/.termtter ファイルに以下を記述します。

plugin 'plugin'

plugin プラグインを有効にするすと以下の二つのコマンドが使えるようになります。

  • plugins
  • plugin

plugins コマンド

plugins コマンドを実行すると、利用可能なプラグインの一覧が出力されます。

例)

> plugins
english
erb
favorite
fib
filter
growl
keyword
log
notify-send
plugin
say
shell
standard_plugins
stdout
system
translation
uri-open
yesno

plugin コマンド

plugin コマンドを使うと任意のプラグインをその場で読み込むことができます。
試しに fib プラグインを読み込んでみましょう。

> plugin fib
=> true

ついでに fib を実行してみましょう。

> fib 100
=> fib(100) = 354224848179261915075

これで「fib(100) = 354224848179261915075」というメッセージが twitter に送信されました。
ちゃんと送信されたかどうか list コマンドを使って確かめてみましょう。

> list
(01:06:17) jugyo: fib(100) = 354224848179261915075 1102123752
...

ちゃんと送信されてますね!