Comments (62)
- rails new中にrdoc/riの警告?メッセージが出る
- 1.9.2以上で実行しているならそもそも不要では?
note
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
from workshop.
- reading readme
- テスト落ちてる(´・_・`)?
from workshop.
- 使い方
- 非同期に処理を実行できるgem
from workshop.
- install
- Railsしかサポートしてないのでrailsも入れる
from workshop.
- install
- nokogiriのインストール長い…(´・_・`)
bundle init
Gemfile
gem "rails"
gem 'delayed_job_active_record'
bundle install --path vendor/bundle
Using bundler 1.11.2
Installing delayed_job 4.1.2
Installing rails 4.2.6
from workshop.
- インストール終わった
- 次は試しに動かす
from workshop.
- 動かし方を読む
- ActiveRecordをバックエンドとして使うには job tableが必要らしい。AR以外をバックエンドにできるのかか?
from workshop.
- AR以外のバックエンドが使えるのか調べる
- mongodbをバックエンドにできるらしい(別のgemも必要)
If you plan to use delayed_job with Mongoid〜
from workshop.
- job tableを作る
- rails newしてなかった…使い方間違えてた(`・∀・´≡`・∀・´)
note
rails generate delayed_job:active_record
rails newしろよーエラー
from workshop.
- railsのインストール
- gem i rails
from workshop.
- 他にどんなgemを使ってるか読む
- gem i rails中暇なので。
- activesupportが必須gem
from workshop.
- テスト用railsアプリを作る
- API-modeは5移行なので4.2.6を入れてるので普通に作る
- ralis new delayed_job_test
from workshop.
- gemの依存関係調査
- gemfileとgemspecの関係がわからない…
- gemfile側にもrakeや platforms :rubyがあるけど、gemspec側にもdependencyがある
- platforms指定はGemfilesじゃないとできない?
- だとしたらrakeはgemspec側でも良いのでは?
- platforms指定はGemfilesじゃないとできない?
- gemfile側にもrakeや platforms :rubyがあるけど、gemspec側にもdependencyがある
from workshop.
- rubocopってgemfileに書く必要あるの?
- いつもコマンドで実行しているイメージ
- requireしてないなら不要?開発時に必ず使うパスがある?
from workshop.
- delayed_jobを入れる
- gem 'delayed_job_active_record'を書いてbundle install
- delayed_jobは直接入れず、AR用のgemから依存関係で入るみたい
- 多分mongodb版も同じかと
note
Installing delayed_job 4.1.2
Installing delayed_job_active_record 4.1.1
from workshop.
- job table用のmigrationとか作る
- rails generate delayed_job:active_record
- bin/delayed_jobもできた
code
Running via Spring preloader in process 16874
create bin/delayed_job
chmod bin/delayed_job
create db/migrate/20160611022955_create_delayed_jobs.rb
from workshop.
- job tableのmigration実行
- rake db:migrate
- エラー(´・_・`)
code
rake aborted!
Gem::LoadError: You have already activated rake 10.4.2, but your Gemfile requires rake 11.1.2. Prepending `bundle exec` to your command may solve this.
files/workspace/delayed_job_test/config/boot.rb:3:in `<top (required)>'
files/workspace/delayed_job_test/config/application.rb:1:in `<top (required)>'
files/workspace/delayed_job_test/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
files/workspace/delayed_job_test/config/boot.rb:3:in `<top (required)>'
files/workspace/delayed_job_test/config/application.rb:1:in `<top (required)>'
files/workspace/delayed_job_test/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
from workshop.
- システムのrake が使われてた
- bundle exec rake ではなく rake で実行していた
code
rake --version
rake, version 10.4.2
bundle exec rake --version
rake, version 11.1.2
from workshop.
- システムのrake消す
- できない
- default gemらしい。
- 必須だから消せない→知らないうちに古いrake使ってる可能性が
note
gem uninstall rake
ERROR: While executing gem ... (Gem::InstallError)
gem "rake" cannot be uninstalled because it is a default gem
from workshop.
readme にbundle exec rakeにして欲しい
from workshop.
- そもそもbundle exec rake実行してもrequireに失敗するのでは?
- グローバルにrakeのバージョン指定してインストールしてみる
from workshop.
- rakeを11.1.2に上げる
- gem install rake -v 11.1.2
note
rake --version
rake, version 11.1.2
from workshop.
- rake11.1.2でbundleを使わずにマイグレーションする
- rake db:migrate
- 通った(´・_・`)!
- rakeタスク内でdependencyのgemをrequireしてなければいけるのかな…?
note
== 20160611022955 CreateDelayedJobs: migrating ================================
-- create_table(:delayed_jobs, {:force=>true})
-> 0.0033s
-- add_index(:delayed_jobs, [:priority, :run_at], {:name=>"delayed_jobs_priority"})
-> 0.0006s
== 20160611022955 CreateDelayedJobs: migrated (0.0041s) =======================
from workshop.
- 4.2向けに読めって項目
- For Rails 4.2, see below
from workshop.
- 開発時の機能
- 100個のjobごとか、queueが終わったタイミングでコードをリロードする
- delayed_jobの再起動は要らないらしい…便利
- jobとqueueのfinishってどう違うの?
- queueのfinishはキューの一つの処理が終わったとき?キューがからになったとき?
- 読み込む範囲はdelayed_jobが読み込むコード全て?delayed_job本体への変更は?
- (リロードする周りに変更があった場合にリロードされる?)
どう扱うか検討しよう
from workshop.
- queue_adapterの設定
- config.active_job.queue_adapter = :delayed_job
- 何故必要なのか?
- http://guides.rubyonrails.org/active_job_basics.html#setting-the-backend
- sidekiqから切り替えるため?
- デフォルトだとsidekiqが使われる?
- このgem独自では無い部分があるの?
from workshop.
- rails4系の制約
- protected_attributes gemを使っている場合はgemfileの上に書く必要があるらしい
- 何かと競合するから?
- gemfileの書き順によってロード順が変わる?
- requireの評価順で挙動が変わるのかな??
from workshop.
- protected_attributes gem
- mass-assignmentとは
- http://wada811.blogspot.com/2013/08/strong-parameters-mass-assignment-vulnerability-countermeasure-in-rails4.html
- user.update_attributes(params[:user])とかで予期せぬデータが変更されるアレ
- permitで回避されるはずだけど、このgemは何をするgem何だろう?
- http://wada811.blogspot.com/2013/08/strong-parameters-mass-assignment-vulnerability-countermeasure-in-rails4.html
from workshop.
- model作る
- rails g model user name:string
note
invoke active_record
create db/migrate/20160611045154_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
from workshop.
- delayed job用のメソッド作る
- こんな感じ
note
class User < ActiveRecord::Base
def update_name(new_name)
@name = new_name
@name.save
end
end
from workshop.
- migration
- bundle exec rake db:migrate
note
== 20160611045154 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0014s
== 20160611045154 CreateUsers: migrated (0.0015s) =============================
from workshop.
- 試してみる
- rails c
irb(main):001:0> u = User.create
(0.1ms) begin transaction
SQL (0.4ms) INSERT INTO "users" ("created_at", "updated_at") VALUES (?, ?) [["created_at", "2016-06-11 04:57:29.630331"], ["updated_at", "2016-06-11 04:57:29.630331"]]
(53.2ms) commit transaction
=> #<User id: 1, name: nil, created_at: "2016-06-11 04:57:29", updated_at: "2016-06-11 04:57:29">
irb(main):002:0> u.name = "test"
=> "test"
irb(main):003:0> User.first
User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
=> #<User id: 1, name: nil, created_at: "2016-06-11 04:57:29", updated_at: "2016-06-11 04:57:29">
irb(main):004:0> u.save
(0.1ms) begin transaction
SQL (0.3ms) UPDATE "users" SET "name" = ?, "updated_at" = ? WHERE "users"."id" = ? [["name", "test"], ["updated_at", "2016-06-11 05:02:18.719362"], ["id", 1]]
(50.6ms) commit transaction
=> true
irb(main):009:0* User.first
User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
=> #<User id: 1, name: "test", created_at: "2016-06-11 04:57:29", updated_at: "2016-06-11 05:02:18">
from workshop.
- delay用メソッド動かす
- u.update_name('update_name_sync')
- エラー
- saveメソッド間違えてた(´・_・`)
def update_name(new_name)
name = new_name
save
end
from workshop.
- 同期保存
- アップデートされてる
irb(main):006:0* u = User.create(name: 'before')
(0.2ms) begin transaction
SQL (0.3ms) INSERT INTO "users" ("name", "created_at", "updated_at") VALUES (?, ?, ?) [["name", "before"], ["created_at", "2016-06-11 05:06:42.352407"], ["updated_at", "2016-06-11 05:06:42.352407"]]
(14.8ms) commit transaction
=> #<User id: 5, name: "before", created_at: "2016-06-11 05:06:42", updated_at: "2016-06-11 05:06:42">
irb(main):007:0> u.update_name('after_sync')
(0.1ms) begin transaction
(0.1ms) commit transaction
=> true
irb(main):008:0> u
=> #<User id: 5, name: "before", created_at: "2016-06-11 05:06:42", updated_at: "2016-06-11 05:06:42">
irb(main):009:0> User.last
User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User id: 5, name: "before", created_at: "2016-06-11 05:06:42", updated_at: "2016-06-11 05:06:42">
from workshop.
- 非同期保存
- まだ呼ばれてない
u = User.create(name: 'async_before')
(0.1ms) begin transaction
SQL (0.3ms) INSERT INTO "users" ("name", "created_at", "updated_at") VALUES (?, ?, ?) [["name", "async_before"], ["created_at", "2016-06-11 05:07:38.432976"], ["updated_at", "2016-06-11 05:07:38.432976"]]
(52.3ms) commit transaction
=> #<User id: 6, name: "async_before", created_at: "2016-06-11 05:07:38", updated_at: "2016-06-11 05:07:38">
u.delay.update_name('after_async')
(0.1ms) begin transaction
SQL (0.4ms) INSERT INTO "delayed_jobs" ("handler", "run_at", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["handler", "--- !ruby/object:Delayed::PerformableMethod\nobject: !ruby/object:User\n raw_attributes:\n name: async_before\n id: 6\n created_at: &1 2016-06-11 05:07:38.432976000 Z\n updated_at: *1\n attributes: !ruby/object:ActiveRecord::AttributeSet\n attributes: !ruby/object:ActiveRecord::LazyAttributeHash\n types:\n id: &4 !ruby/object:ActiveRecord::Type::Integer\n precision: \n scale: \n limit: \n range: !ruby/range\n begin: -2147483648\n end: 2147483648\n excl: true\n name: &3 !ruby/object:ActiveRecord::Type::String\n precision: \n scale: \n limit: \n created_at: !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter\n subtype: &2 !ruby/object:ActiveRecord::Type::DateTime\n precision: \n scale: \n limit: \n updated_at: !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter\n subtype: *2\n values:\n id: \n name: \n created_at: \n updated_at: \n additional_types: {}\n materialized: true\n delegate_hash:\n name: !ruby/object:ActiveRecord::Attribute::FromUser\n name: name\n value_before_type_cast: async_before\n type: *3\n value: async_before\n id: !ruby/object:ActiveRecord::Attribute::FromUser\n name: id\n value_before_type_cast: 6\n type: *4\n value: 6\n created_at: !ruby/object:ActiveRecord::Attribute::FromUser\n name: created_at\n value_before_type_cast: *1\n type: !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter\n subtype: *2\n value: *1\n updated_at: !ruby/object:ActiveRecord::Attribute::FromUser\n name: updated_at\n value_before_type_cast: *1\n type: !ruby/object:ActiveRecord::AttributeMethods::TimeZoneConversion::TimeZoneConverter\n subtype: *2\n value: *1\n new_record: false\n active_record_yaml_version: 0\nmethod_name: :update_name\nargs:\n- after_async\n"], ["run_at", "2016-06-11 05:08:24.300926"], ["created_at", "2016-06-11 05:08:24.301219"], ["updated_at", "2016-06-11 05:08:24.301219"]]
(11.1ms) commit transaction
=> #<Delayed::Backend::ActiveRecord::Job id: 1, priority: 0, attempts: 0, handler: "--- !ruby/object:Delayed::PerformableMethod\nobject...", last_error: nil, run_at: "2016-06-11 05:08:24", locked_at: nil, failed_at: nil, locked_by: nil, queue: nil, created_at: "2016-06-11 05:08:24", updated_at: "2016-06-11 05:08:24">
u
=> #<User id: 6, name: "async_before", created_at: "2016-06-11 05:07:38", updated_at: "2016-06-11 05:07:38">
User.last
User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User id: 6, name: "async_before", created_at: "2016-06-11 05:07:38", updated_at: "2016-06-11 05:07:38">
from workshop.
- 非同期テーブルに入ってるか確認
- 別バックエンドならActiveRecordが違うネームスペースになりそう
Delayed::Backend::ActiveRecord::Job.first
Delayed::Backend::ActiveRecord::Job Load (0.2ms) SELECT "delayed_jobs".* FROM "delayed_jobs" ORDER BY "delayed_jobs"."id" ASC LIMIT 1
=> #<Delayed::Backend::ActiveRecord::Job id: 1, priority: 0, attempts: 0, handler: "--- !ruby/object:Delayed::PerformableMethod\nobject...", last_error: nil, run_at: "2016-06-11 05:08:24", locked_at: nil, failed_at: nil, locked_by: nil, queue: nil, created_at: "2016-06-11 05:08:24", updated_at: "2016-06-11 05:08:24">
from workshop.
- queueのjobを実行させる
- どう実行させるんだ…?
- bundle exec rake jobs:work
from workshop.
- 変わったか確認
- 変わってない?
irb(main):034:0> User.last
User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User id: 6, name: "async_before", created_at: "2016-06-11 05:07:38", updated_at: "2016-06-11 05:07:38">
irb(main):035:0> u
=> #<User id: 6, name: "async_before", created_at: "2016-06-11 05:07:38", updated_at: "2016-06-11 05:07:38">
irb(main):036:0> u.reload
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 6]]
=> #<User id: 6, name: "async_before", created_at: "2016-06-11 05:07:38", updated_at: "2016-06-11 05:07:38">
irb(main):037:0> Delayed::Backend::ActiveRecord::Job.count
(0.2ms) SELECT COUNT(*) FROM "delayed_jobs"
=> 0
irb(main):038:0> u
=> #<User id: 6, name: "async_before", created_at: "2016-06-11 05:07:38", updated_at: "2016-06-11 05:07:38">
from workshop.
- 実行はされている
- delayd_jobのテーブルが無くなってる
'''
[Worker(host:MBA.local pid:46727)] Starting job worker
[Worker(host:MBA.local pid:46727)] Job User#update_name (id=1) RUNNING
[Worker(host:MBA.local pid:46727)] Job User#update_name (id=1) COMPLETED after 0.0196
[Worker(host:MBA.local pid:46727)] 1 jobs processed at 15.6516 j/s, 0 failed
'''
from workshop.
- sqliteの中身を見よう
- http://www.sequelpro.com/
from workshop.
- sqliteはこっちだ
- http://sqlitebrowser.org/
from workshop.
- 更新されない
- databaseからキューは消えてる
• 実行もされているログは出ている - データは変わってない
- ログファイルの一を探す
from workshop.
- ログ見つつ実行
- tail -f log/development.log
- 実行はされているみたい?
t IS NULL) ORDER BY priority ASC, run_at ASC LIMIT 5
SQL (51.0ms) UPDATE "delayed_jobs" SET "locked_at" = '2016-06-11 05:29:20.436216', "locked_by" = 'host:MBA.local pid:46727' WHERE "delayed_jobs"."id" IN (SELECT "delayed_jobs"."id" FROM "delayed_jobs" WHERE ((run_at <= '2016-06-11 05:29:20.435786' AND (locked_at IS NULL OR locked_at < '2016-06-11 01:29:20.435800') OR locked_by = 'host:MBA.local pid:46727') AND failed_at IS NULL) AND "delayed_jobs"."id" = ? ORDER BY priority ASC, run_at ASC) [["id", 3]]
Delayed::Backend::ActiveRecord::Job Load (0.3ms) SELECT "delayed_jobs".* FROM "delayed_jobs" WHERE "delayed_jobs"."id" = ? LIMIT 1 [["id", 3]]
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 6]]
2016-06-11T14:29:20+0900: [Worker(host:MBA.local pid:46727)] Job User#update_name (id=3) RUNNING
(0.1ms) begin transaction
(0.1ms) commit transaction
(0.1ms) begin transaction
SQL (0.5ms) DELETE FROM "delayed_jobs" WHERE "delayed_jobs"."id" = ? [["id", 3]]
(55.9ms) commit transaction
2016-06-11T14:29:20+0900: [Worker(host:MBA.local pid:46727)] Job User#update_name (id=3) COMPLETED after 0.0597
from workshop.
- printfデバッグ
- 以下のように変更
class User < ActiveRecord::Base
def update_name(new_name)
puts new_name
name = new_name
save
end
end
irb(main):002:0> u.update_name('test')
test
(0.1ms) begin transaction
SQL (0.3ms) UPDATE "users" SET "name" = ?, "updated_at" = ? WHERE "users"."id" = ? [["name", "test"], ["updated_at", "2016-06-11 05:34:36.231199"], ["id", 8]]
(49.6ms) commit transaction
=> true
irb(main):003:0> u.
Display all 375 possibilities? (y or n)
irb(main):003:0> User.last
User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User id: 8, name: "test", created_at: "2016-06-11 05:34:30", updated_at: "2016-06-11 05:34:36">
User.last
User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User id: 8, name: "test_async", created_at: "2016-06-11 05:34:30", updated_at: "2016-06-11 05:35:11">
できてた
from workshop.
- activerecordの謎挙動
u.nameではアクセスできるのに、インスタンスメソッド内部で
def update_name(new_name)
name = new_name
save
end
とやるとアクセスできない…(´・_・`)?
from workshop.
- priorityのテスト
- 低いやつと高いやつで上書きする
- priority無しでは順に実行して順に処理→最終的に2回目の方に
- priorityありにして、低いやつ高いやつで実行→最終的に低いやつの方になるはず
prority無し
def update_name_low(new_name)
self.name = new_name
save
end
def update_name_high(new_name)
self.name = new_name
save
end
u = User.last
u.delay.update_name_low('low_name')
u.delay.update_name_high('hih_name')
User.last # not change
User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1
=> #<User id: 8, name: "test_async", created_at: "2016-06-11 05:34:30", updated_at: "2016-06-11 05:35:11">
bundle exec rake jobs:work
実行
from workshop.
- readme読み直した
- rails2はもう要らないのでは?
rails 2 not support
so delete this line?
See the 2.0 branch for Rails 2.
from workshop.
bundle exec rakeが正しいのか
bin/rakeが正しいのか?
railsのおすすめドキュメントにどう書いてあるか
from workshop.
- railsでは一般的にどうrakeを使うか
- rails guide
- rails readme
from workshop.
- そもそもbin/rakeで動くの?
- ./bin/rake db:drop
Running via Spring preloader in process 79829 - springが邪魔をして動いてるかわからない…?
from workshop.
- bundle exec rake db:dropではログが出ないので正しい挙動だ
from workshop.
- rakeだとエラーになる
- bin/rakeだとエラーにならない
rake db:migrate
rake aborted!
Gem::LoadError: You have already activated rake 10.4.2, but your Gemfile requires rake 11.1.2. Prepending `bundle exec` to your command may solve this.
bin/rake
bin/rake db:migrate
Running via Spring preloader in process 85569
== 20160611022955 CreateDelayedJobs: migrating ================================
-- create_table(:delayed_jobs, {:force=>true})
-> 0.0041s
-- add_index(:delayed_jobs, [:priority, :run_at], {:name=>"delayed_jobs_priority"})
-> 0.0008s
== 20160611022955 CreateDelayedJobs: migrated (0.0051s) =======================
== 20160611045154 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0006s
== 20160611045154 CreateUsers: migrated (0.0007s) =============================
from workshop.
- rails guide敵にはbin/rake
- readmeには特に無い
- どっちが良いのかググる
from workshop.
- delayed_jobはrails3も対象なので、rails 3で使えないbin/rakeは使えない
- rails2は別ブランチ
- bundle install してるのにbundle execしないのおかしい
- bundle exec 必須にするのは正しいのか?
from workshop.
- こんな感じで送る
このgemのセットアップ手順ではbundle installしてる。
実行する段階では
rails generate delayed_job:active_record
rake db:migrate
となってるので、system rakeが使われる。
system rakeとbundle installによってインストールされたrakeバージョンは異なる場合がある。
bundle installで入れる事を前提としているなら、Readmeのコマンドも
bundle exec rails generate delayed_job:active_record
bundle exec rake db:migrate
とbundle execをつけるべき
% rake db:migrate
rake aborted!
Gem::LoadError: You have already activated rake 10.4.2, but your Gemfile requires rake 11.1.2. Prepending `bundle exec` to your command may solve this.
/workspace/delayed_job_test/config/boot.rb:3:in `<top (required)>'
/workspace/delayed_job_test/config/application.rb:1:in `<top (required)>'
/workspace/delayed_job_test/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
/workspace/delayed_job_test/config/boot.rb:3:in `<top (required)>'
/workspace/delayed_job_test/config/application.rb:1:in `<top (required)>'
/workspace/delayed_job_test/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
from workshop.
- 聞かないと問題ないかわからないので、聞こう
from workshop.
In the README.md, use bundle install
.
And gerenate database command like this.
rails generate delayed_job:active_record
rake db:migrate
But, this command not use bundler's rails and rake.
So, when rails&rake in global and in Gemfile.lock are different version,
we got error like this.
% rake db:migrate
rake aborted!
Gem::LoadError: You have already activated rake 10.4.2, but your Gemfile requires rake 11.1.2. Prepending `bundle exec` to your command may solve this.
/workspace/delayed_job_test/config/boot.rb:3:in `<top (required)>'
/workspace/delayed_job_test/config/application.rb:1:in `<top (required)>'
/workspace/delayed_job_test/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
/workspace/delayed_job_test/config/boot.rb:3:in `<top (required)>'
/workspace/delayed_job_test/config/application.rb:1:in `<top (required)>'
/workspace/delayed_job_test/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
So we should use bundle exec when setup database table.
Same problem in this line.
rails generate delayed_job:upgrade
rake db:migrate
from workshop.
The rails 2.x is very old, and it's no longer supported.
(http://guides.rubyonrails.org/maintenance_policy.html)
So I think this link is not necessary.
from workshop.
collectiveidea/delayed_job#919
collectiveidea/delayed_job#920
from workshop.
なんでacive_jobから切り替える必要あるのか?
from workshop.
メンターがおかしいぞ?ってぼやいていたので空き時間にさくっと。
fluent/fluentd-docs#229
from workshop.
お疲れさまでした!
from workshop.
Related Issues (20)
- OSS Gate Workshop: online: 2024-06-08: fusen: OSS_NAME: Work log HOT 21
- OSS Gate Workshop: online: 2024-06-08: kuraryu: wheel: Work log HOT 41
- OSS Gate Workshop: online: 2024-06-08: wxqmailbox: Tabnine: Work log HOT 5
- OSS Gateオンラインワークショップ2024-07-27
- OSS Gateワークショップ2024-09-xx HOT 1
- OSS Gate Workshop: online: 2024-07-27: daipom: Fluentd: Work log HOT 11
- OSS Gate Workshop: online: 2024-07-27: blacktoad30: GNU Guix: Work log HOT 10
- OSS Gate Workshop: Online: 2024-07-27: jkyochen: Fluentd: Work log HOT 19
- OSS Gate Workshop: online: 2024-07-27: otegami: PGroonga: Work log HOT 5
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: tadsan: deepcopy: Work log HOT 5
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: hana979: laravel/pint: Work log HOT 11
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: myou1985: django-debug-toolbar: Work log HOT 15
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: noko1024: python/websockets Work log HOT 4
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: fujiokayu: ${OSS_NAME}: Work log HOT 1
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: tetrapod418: ${OSS_NAME}: Work log HOT 29
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: otoyuzu705: python-dotenv: Work log HOT 14
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: satou-haruka-37: ransack: Work log HOT 47
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: 斉藤賢悟: react-hook-form: Work log HOT 15
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: pepi-p: python-skyfield: Work log HOT 7
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: TadaTeruki: winit: Work log HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from workshop.