by shigemk2

当面は技術的なことしか書かない

Ruby

rails timezone

config/application.rbで config.time_zone = 'Tokyo' Rails 5系でも同じかんじ。

serverengine slide

kuroko2のベース。Ruby RubyKaigi 2014: ServerEngine from Treasure Data, Inc.

rails log rotation

railsのログローテーションにデファクトスタンダードはなかった /path/to/application/log/*.log { daily missingok rotate 7 compress delaycompress notifempty copytruncate }

InvalidIatError

JWT::InvalidIatError at /user/auth/google_oauth2/callback Invalid iat kuroko2でちょこちょこエラー出るけど、updateすりゃ直るという情報を得る kuroko2で使ってるomniauth-google-oauth2のバージョンは0.2.4で、今は0.5.0なので

rspec doc

70 a a 18 in に 14 on に 14 or または 13 an 〜 12 to に 11 the その 10 api API 10 spec 仕様 8 is は 8 rspec rspec 6 of の 6 you 君は 5 and そして 5 apis アピス 5 as として 5 test テスト 4 public パブリック 4 versions バージョン 3 be 〜する…

patriot-workflow-scheduler pr 70

ジョブを検索するときに%をつけないといけないのはあんまり直感的じゃないから直した

雑感 patriot-workflow-scheduler

言語とか Ruby ( >= 1.9 ) MySQL ( recommended for production use ) sinatra 1.4 grunt 記載されていないけど求められている言語とか python2系(ドキュメントのビルドで使う。3系だとビルドが失敗する) どうなってんのhttps://t.co/DsqkN3RmmX— shigemk2 (…

serverengineとkuroko2

Rubyで書かれたマルチプロセスサーバーで、kuroko2で使われている github.com 本番用起動スクリプト(systemd)でもそれが確認できて、実行するときにlog nilでdaemonized falseにしている。 kuroko2/kuroko2-executor.service at master · cookpad/kuroko2 · …

QA #cookpad_tech_kitchen

hakoはOSS化している dockerよりもデプロイ管理しやすくするために 開発者がちゃんと責任を持つように BBQ コンテナがつまったとき 容易に解決可能 本体ジョブはどうしてる docker化していない 本体はBBQからkuroko2へ命令を投げられる kuroko2 コマンド一発…

美しいバッチの壊し方 #cookpad_tech_kitchen

青木峰郎 情報系(DWH)のSQLバッチ 大量のデータをひたすら集計(一個一個はそんなに重くない) ジョブ数が多くてフローが複雑 1000ジョブ DWH 13000くらいが多いけど、1000は少ない kuroko2 + bricolage http://techlife.cookpad.com/entry/2015/06/27/154407 …

memo クックパッドのバッチまわりの概況とKuroko2の近況 #cookpad_tech_kitchen

https://speakerdeck.com/takai/the-design-philosophy-of-kuroko2 kuroko2運用 複数サービス感の整合性の取り組みについて agenda kuroko2の近況 バッチ周りの概況 構成 運用 デプロイ kuroko2の近況 ジョブスケジューラー/ワークフローエンジン アーキ con…

memo 非同期ジョブと仲良くする #cookpad_tech_kitchen

sidekiq web マスター ワーカー コード(共有ファイルシステム) https://github.com/mperham/sidekiq docker アプリ キュー/ワーカー docker増やせばはこいつらは増やせる 増やせば増やすほどredis clusterの面倒をみないといけない ワーカーとマスターの数は…

kuroko2 noop

ソースコードを見ているけど、本当にnoop。何もしていない。 kuroko2/noop.rb at 2de39a89fd8a6f48e736797c66a872881ef5afa9 · cookpad/kuroko2 · GitHub

kuroko2 pr 63 補遺

github.com 昨日の深夜3時くらいに投げたプルリクの補足。 これに引きづられてkuroko2バグってたのかhttps://t.co/cBhNmVZEB0— shigemk2 (@shigemk2) 2017年5月30日 あぁ、gemspecにバージョン指定せずにhtml-pipelieを書いているけど、commonmarkerはインス…

kuroko2 pr 63

やったこと ジョブ登録時/テスト実行時に出てくる Missing dependency 'commonmarker' の回避 gemspecのgithub-markdownをcommonmarkerへ書き換える(当初はGemfileに直接書き込んでた) TravisCIでのビルド時にマシンのCMakeのバージョンが古くてgemパッケー…

Gemfileでローカルパスを指定する

gem 'extracted_library', :path => './vendor/extracted_library' If you would like to use an unpacked gem directly from the filesystem, simply set the :path option to the path containing the the gem’s files. unpack ほどく中身を出す shakezoom…

mikutter font

プラグイン入れなくてもフォントは変えられるね。こんなふうに。下のレンチアイコンをクリックしようず。 moguno.hatenablog.jp toshia.github.io

kuroko2 pr 59

雑な日記です。とくに挨拶とかはしないで、普通に投げてます。 github.com 登録したジョブを実行するAPIは存在するのだけれど、ソースコードとかテストコードとかを読み込まないといけないのがすごくしんどい。ドキュメントがあんまり整備されていないので、…

klassについて

typoかと思ったら、Rubyではclassを予約語にしているので、代わりにklassを使っている…らしい。 stackoverflow.com klass (ActiveRecord::Reflection::AssociationReflection) - APIdock

kuroko2 job create api

まだ調べないといけないけど、ジョブの登録APIはないっぽい。 あと、パラメータを動的に変更して実行する方法も未着手 dev.classmethod.jp

user_install no

gemモジュールをつかうときは、時と場合によってはuser_install=noが必要になるって話 qiita.com

kuroko2のデプロイスクリプトから

いくつか感想 まあRubyなのでcapistranoでデプロイする感じ sytemdのserviceスクリプトはweb/processor/executor/schedulerの4つ やっぱりkuroko2のアプリケーションをまるっとデプロイしており、アプリケーションごとgitで管理している github.com

gem ansible

gemインストールansibleでいけんじゃん # Installs version 1.0 of vagrant. - gem: name: vagrant version: 1.0 state: present gem - Manage Ruby gems — Ansible Documentation

kuroko2 起動スクリプト

kuroko2のProcfileでは、rails/scheduler/processor/executor の起動が定義されているけど、サンプルで、docsの下にsystemdのserviceスクリプトがある hatappi.hateblo.jp

relish

documentの下の方にリンクしてあった。rspecのサンプル集。 RSpec documentation Transactions - RSpec Rails - RSpec - Relish

Address family not supported by protocol/ruby

kuroko2起動時にpumaのbinder.rbの s = TCPServer.new(host, port) でコケたけど、kuroko2を再構築したら上手く言ったので、備忘しておく d.hatena.ne.jp

kuroko2 task memo

とりあえずexecuteとsleepを覚えておけば…… kuroko2/tasks.md at master · cookpad/kuroko2 · GitHub

kuroko2 update

別のDBにマイグレートしたいときもこの技が使える $ bundle update kuroko2 $ ./bin/rake kuroko2:install:migrations $ ./bin/rake db:migrate github.com

foreman

manage Procfile-based applications restartがなかった foreman(1) - manage Procfile-based applications

ruby base64

require 'base64' irbから使えるよ。標準添付なので。 module Base64 (Ruby 2.4.0)