0
delayed_jobを使用してupload_to_scribd(gem scribd_fuから)メソッドをキューに入れたいとします。delayed_jobを使用してRailsアプリケーション内のgemからメソッドをキューに入れる
宝石自体を変更せずにこれを行う方法はありますか?
delayed_jobを使用してupload_to_scribd(gem scribd_fuから)メソッドをキューに入れたいとします。delayed_jobを使用してRailsアプリケーション内のgemからメソッドをキューに入れる
宝石自体を変更せずにこれを行う方法はありますか?
これを機能させるために特別な操作を行う必要はありません。
class Attachment
def upload
ScribdFu.new(self).upload_to_scribd
end
end
Attachment.first.delay.upload
PS:私は知らないあなたはまた、独自の機能やモデルでこれをラップすることができますしたい場合は
ScribdFu.new.delay.upload_to_scribd
:たとえば、あなたは、おそらくこのような何かを行うことができますScribdFu gemへの呼び出しの構文が正しいが、この方法で遅延メソッドを使用して遅延ジョブをキューに入れることができるはずです。
module ScribdFu
module InstanceMethod
handle_asynchronously :upload_to_scribd
end
end
これは、任意の時間は、この関数が呼び出されることを意味します:、あなたがあなたのコメントに何をしたい達成(設定/初期化子/ delay_scribd.rb)というファイルを作成し、そこに以下を追加するには
メソッドの遅延を明示的に呼び出すことなく、遅延ジョブで呼び出されます。 end
ご回答ありがとうございます。私は、upload_to_scribdへのすべての呼び出しを、明示的な呼び出しではなく、delayed_jobで処理することを望みます。その理由は、宝石にはupload_to_scribdを呼び出すafter_saveメソッドが追加されているからです。これは特に遅延したいものです。私は、after_save:あなたの答えのメソッドと一緒にアップロードするだけで明示的に設定できますか?これはScribdFuからのデフォルトafter_saveをオーバーライドしますか?そうでない場合は、どのようにこれを無効にすることができますか?オーバーライドされていない場合、upload_to_scribdは2回呼び出されます.1回はgemによって、もう一度は明示的なアップロードメソッドによって1回呼び出されます。 –
私は、デフォルトの動作を変更するための解決策で自分の答えを更新しました。 –
パーフェクト、ありがとう! –