gem activejob-google_cloud_tasks を作成した
概要
Google Cloud Tasks の ActiveJob 用のアダプタの GEM を作成した。
https://rubygems.org/gems/activejob-google_cloud_tasks
使い方と、初めての gem 公開にあたっての反省と、更新の手順をメモしておく。
使い方
前提条件
事前に gcloud app deploy queue.yaml
で Cloud Tasks にキューを作成しておく。
インストール
gem 'activejob-google_cloud_tasks', '>= 0.1.2'
使う
- ActiveJob の queue_adapter を変更
Rails.application.config.active_job.queue_adapter = Activejob::GoogleCloudTasks::Adapter.new( project: 'MY_GOOGLE_CLOUD_TASKS_PROJECT', location: 'MY_GOOGLE_CLOUD_TASKS_LOCATION' )
- rack アプリを mount
Rails.application.routes.draw do mount Activejob::GoogleCloudTasks::Rack, at: Activejob::GoogleCloudTasks::Config.path end
- Job class を作成し、使う
例.
class SampleJob < ApplicationJob queue_as :default def perform(args) puts "hello, #{args[:name]}!" end end
class SampleController < ApplicationController def job SampleJob.perform_later({name: 'ken'}) end end
Job の perform の引数は1つ。hash形式で渡す必要があるので注意。
反省
0.1.0 を動かない状態で公開してしまった...
連休前に公開して、動かないことがわかったが、誰もダウンロードなんてしないだろうと思っていたが、週明け100以上ダウンロードされていた。本当に申し訳ない。
gem 'activejob-google_cloud_tasks', path: '/path/to/my-gem'
とすることで、ローカルの gem をインストールできることがわかったので、今後は手元の rails アプリで動くことを試してから公開する
バージョン更新手順
バージョンを上げる
module Activejob module GoogleCloudTasks VERSION = "0.1.2" end end
ビルド
bundle exec rake build
リリース
bundle exec rake release