2017-09-04 6 views
2

私はRailsが初めてです。なぜジョブをトリガするコントローラを実行すると整数が出力されるのですか?

私は、ジョブをトリガーするメソッドを持つ単純なコントローラーを持っています。私はサイドキックを走らせている。コンソールからそれを実行しようとすると、出力は一連の整数になります。どういう意味ですか?

コントローラ:私のコンソールで

class DownloadersController 

def email 
    Jobs.enqueue(:send_download_drive_link, to_address: '[email protected]', drive_url: 'www.google.com') 
end 

end 

、私は、次のコマンドを実行します。

[6] pry(main)> x = DownloadersController.new 
=> #<DownloadersController:0x007fd2f31a8a88 
@_action_has_layout=true, 
@_headers={"Content-Type"=>"text/html"}, 
@_request=nil, 
@_response=nil, 
@_routes=nil, 
@_status=200> 
[7] pry(main)> x.email 
=> "a8d82b6be3f8fd74fb230ab9" 

このハッシュに見える出力は何ですか?仕事が誘発されるべきではありませんか?

+1

それはジョブのIDです –

+0

ありがとう、私はそれを想像しましたが、なぜ誘発されていないのですか? – catch22

+0

'Jobs.enqueue'はどこから来ているのですか?sidekiqジョブは通常、' MyJob.perform_now'または 'MyJob.perform_later'を使ってトリガーされます。 –

答えて

1

Rubyは最後の式の値を暗黙的に返します。あなたの場合、それは待ち行列に入れられた仕事のIDのようです。

+0

こんにちは@aromero、もう少し詳しく教えていただけますか?この回答は、私の質問の下のコメントと違いはありません。仕事のIDなので、このIDはどうなりますか?ジョブ ':send_download_drive_link'がエンキューされ実行されると、私は' x.email'を実行すると思います。 – catch22

+0

これは、sidekiqを実行して処理して実行する必要がある場合、ジョブがエンキューされることを意味します。電子メールを送信したいと思われる場合は、アクションメーラーとアクティブな仕事の統合についてお読みください。http://edgeguides.rubyonrails.org/active_job_basics.html#action-mailer – aromero

関連する問題