- Octobot
- High
- Throughput
- Distributed
- Task
- Queue
- Worker
- RabbitMQ
- タスクワーカ
- cd
- git
- clone
- Octobot.git
- ant
- jar
- octobot.jar
- タスク
- mkdir
- tasks
- vi
- TacoTask.java
- JSON
- package
- import
- public
- class
- TacoTask
- private
- static
- Logger
- logger
- void
- JSONObject
- String
- payload
- GOT
- javac
- cp
- cf
- tasks.jar
- com
- コンパイル
- example-config.yml
- burrito
- guest
- false
- example.com
- itsbroke.com
- localhost
- smtp.gmail.com
- true
- username
- password
- org.example.taquito.StartupHook
- org.example.taquito.ShutdownHook
- ユーザ
- タスクキュー
- jsonrpc-channel
- publish
- rabbithub
- hg
- rabbitmq-public-umbrella
- make
- checkout
- rabbithub.git
- all
- ビルド
- sudo
- rabbithub.ez
- コピー
- client
- mochiweb
- rabbitmq-mochiweb
- jsonrpc
- rabbitmq-server
- restart
- octobot
- curl
- tacotruck
- キュー
- Launching
- Octobot...
- Options
- server
- log4j.properties
- WARN
- Settings
- Warning
- unable
- to
- load
- hook
- from
- configuration
- file.
- INFO
- Introspector...
- Workers...
- Introspector
- launched
- on
- Attempting
- connect
- AMQP
- with
- priority
- ready
- rock
- Consumer
- Opening
- connection
- tacotruck...
- DEBUG
- Attempt
- Connected
- 実行
- JSONRPCError
- Internal
- badmatch
- rabbitmq-discuss
- グループ
- at
- master
- GitHub
Octobot | High Throughput Distributed Task Queue Worker
http://octobot.taco.cat/ →pageinfo
RabbitMQ とか使えるタスクワーカ、タコだし、動かしてみようと。
cd
git clone http://github.com/cscotta/Octobot.git
したら、
cd Octobot/
ant jar
で、octobot.jar 作って、
http://octobot.taco.cat/docs/octodocs-v03.pdf →pageinfo
PDF 見ながらタスク作る。
mkdir -p com/example/tasks
vi com/example/tasks/TacoTask.java
で、JSON 見たいので、
package com.example.tasks;
import org.apache.log4j.Logger;
import org.json.simple.JSONObject;
public class TacoTask {
private static Logger logger = Logger.getLogger("TacoTask");
public static void run(JSONObject task) {
//String payload = (String) task.get("payload");
//logger.info("OMG, GOT A TACO: " + payload);
logger.info("OMG, GOT A TACO: " + task.toString());
}
}
ちょっと変えて、
javac -cp jar/octobot.jar com/example/tasks/TacoTask.java
jar cf tasks.jar com
コンパイルすれば tasks.jar が出来るので、あと
vi example-config.yml
example-config.yml の
Octobot:
queues:
- { name: tacotruck,
protocol: AMQP,
host: localhost,
port: 5672,
vhost: /,
priority: 5,
workers: 1,
#username: cilantro,
#password: burrito
username: guest,
password: guest
}
metrics_port: 1228
email_enabled: false
email_from: ohai@example.com
email_to: ohno@itsbroke.com
email_hostname: localhost
email_server: smtp.gmail.com
email_port: 465
email_ssl: true
email_auth: true
email_username: username
email_password: password
# startup_hook: org.example.taquito.StartupHook
# shutdown_hook: org.example.taquito.ShutdownHook
ユーザとパスを guest に。
で、RabbitMQ にタスクキュー入れようとしたんだけど、
jsonrpc-channel で上手く publish できなかったので、rabbithub で。
cd
hg clone http://hg.rabbitmq.com/rabbitmq-public-umbrella
make checkout
make
git clone http://github.com/tonyg/rabbithub.git
make -C rabbithub all
でビルドしたら、
sudo cp rabbithub/dist/rabbithub.ez /usr/lib/rabbitmq/lib/rabbitmq_server-2.1.0/plugins/
だけコピーすれば、他の amqp_client mochiweb rabbitmq-mochiweb は jsonrpc のが有るので
sudo /etc/init.d/rabbitmq-server restart
で動く。で、
cd
cd Octobot/
./octobot
octobot 動かして、
curl -v -d'{"task":"com.example.tasks.TacoTask","args":"hogehogehoge"}' http://localhost:8080/rabbithub/endpoint/q/tacotruck
rabbithub からキュー入れたら、
Launching Octobot...
Options specified: -server -DconfigFile=/home/horaguchi/Octobot/example-config.yml -Dlog4j.configuration=/home/horaguchi/Octobot/log4j.properties
0 [main] WARN Settings - Warning - unable to load Octobot / startup_hook from configuration file.
1 [main] WARN Settings - Warning - unable to load Octobot / shutdown_hook from configuration file.
2 [main] INFO Octobot - Launching Introspector...
5 [main] INFO Octobot - Launching Workers...
10 [Introspector] INFO Introspector - Introspector launched on port: 1228
11 [main] INFO Octobot - Attempting to connect to AMQP queue: tacotruck with priority 5/10 (Worker 1/1).
12 [main] INFO Octobot - Octobot ready to rock!
12 [Worker] INFO Queue Consumer - Opening connection to AMQP / tacotruck...
12 [Worker] DEBUG Queue Consumer - Attempt #1
129 [Worker] INFO Queue Consumer - Connected to RabbitMQ
13171 [Worker] INFO TacoTask - OMG, GOT A TACO: {"args":"hogehogehoge","task":"com.example.tasks.TacoTask"}
動いた。
octobot 2 つとか動かしてても、どっちかだけ実行するっぽい。
JSONRPCError - Internal error: badmatch - rabbitmq-discuss | Google グループ
http://groups.google.com/group/rabbitmq-discuss/browse_frm/thread/4b99da544f1f839b →pageinfo
tonyg's rabbithub at master - GitHub
http://github.com/tonyg/rabbithub →pageinfo
この記事のトラックバックURL: