すべてがRailsワーカー内で機能する階層またはサブモジュールを実装するにはどうすればよいですか?

LewlSauce

現在、約1,000行以上のコードを含むヘルパーがあります。これらすべてのメソッドを内のサブフォルダーに移動lib/custom/scripts/parsers/しようとしていますが、過度に複雑なプロセスなしでこれらすべてのメソッドを引き続き使用できるように、ワーカーにどのような変更を加える必要があるのか​​よくわかりません。

たとえば、すべてのメソッドを次のような複数のファイルに入れたいと思います。

  • lib / custom / scripts / parsers / ip_address_parser.rb
  • lib / custom / scripts / parsers / parser_two.rb
  • lib / custom / scripts / parsers / parser_three.rb

hello_world内部で呼び出されるメソッドがある場合parser_two.rb、次のようになります。

# lib/custom/scripts/parsers/parser_two.rb

module ParserTwo
   def hello_world
      puts "Hello World"
   end
end

次のように、ワーカーからメソッドに直接アクセスできるようにしたいと思います。

class RandomWorker
  include Sidekiq::Worker
  sidekiq_options queue: Rails.env.to_sym, retry: 1

  def perform
    -> how to access hello_world method directly from parser_two.rb?
  end
end

lib/custom/scripts/parsersディレクトリ内のすべてのモジュールを組み込む方法がありますか?また、この継承をすべてのワーカーに適用できる方法はありますか?

ヘルパーを使用するときは、それだけですinclude HelperNameが、もちろんこのシナリオでは同じようには機能しません。

beniutek

したがって、実行できるのはActiveSupport::Concern、次のようなモジュール内でモジュールを使用してネストすることです

module ParserTwo
  extend ActiveSupport::Concern

  included do
    def hello_world
      puts "hello world!"
    end

    #...other methods
  end
end

module AllParsers
  extend ActiveSupport::Concern
  
  included do
    include ParserOne
    include ParserTwo
  end
end

次に、次のAllParsersように使用できます

class RandomWorker
  include Sidekiq::Worker
  include AllParsers

  def perform
    hello_world
  end
end

それでも、必要に応じて1つのモジュールのみを使用する機能を維持します。

class RandomWorker
  include Sidekiq::Worker
  include ParserTwo

  def perform
    hello_world
  end
end

次に、それらを配置する場所について説明します。モジュールを内部に配置する場合は、モジュールをlib/something/directory正しくロードすることを忘れないでください。このstackoverflowの質問を参照できます:

Rails 5:本番環境でlibファイルをロードする

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SystemC:モジュール階層内のすべての信号をトレースするにはどうすればよいですか?

分類Dev

すべてのサブモジュールを更新するにはどうすればよいですか?

分類Dev

すべてのモジュールでpytestを実行するにはどうすればよいですか?

分類Dev

AndroidまたはAndroidEspressoでビュー階層を取得するにはどうすればよいですか

分類Dev

トラッキングブランチを使用する場合、サブモジュール機能は内部でどのように実装されますか

分類Dev

両方のシーンのすべての子の無効化されたオブジェクトを含む、階層内のすべてのゲームオブジェクトをループするにはどうすればよいですか?

分類Dev

setIntervalを含むすべての機能を備えたnodejsモジュールを完全に削除するにはどうすればよいですか?

分類Dev

テーブル内の階層を見つけるために Teradata 再帰クエリを実行するにはどうすればよいですか?

分類Dev

日時モジュールをコードに実装するにはどうすればよいですか?

分類Dev

開発中にcloudflareワーカーのサーバーレス機能をローカルで実行するにはどうすればよいですか?

分類Dev

機能モジュールでforRoot()にインポートされたサービスを使用するにはどうすればよいですか?

分類Dev

階層特性を実装するにはどうすればよいですか?

分類Dev

キーワード関連機能を迅速に実装するにはどうすればよいですか?

分類Dev

上または下からデータ階層にアクセスするモデルを設計するにはどうすればよいですか?

分類Dev

Google PageSpeedモジュールが正しく機能しているかどうかをテストするにはどうすればよいですか?

分類Dev

TreeTableViewコントロールの機能にまたがる列ヘッダーを実装するにはどうすればよいですか?

分類Dev

PowerShellのScriptblock内でモジュールを実行するにはどうすればよいですか?

分類Dev

モジュール内のすべてのメソッドが同じ署名を持つようにするにはどうすればよいですか?

分類Dev

jqueryでテーブルレベルの階層を作成するにはどうすればよいですか?

分類Dev

doctest内でカスタムモジュールを使用するにはどうすればよいですか?

分類Dev

サーバーページへの内訳を実装するにはどうすればよいですか?

分類Dev

ビューからフォームまで、すべてのビジネスロジックを実装するにはどうすればよいですか?

分類Dev

サーブレットで特定のジョブを使用してQuartzスケジューラを実装するにはどうすればよいですか?

分類Dev

ESMモジュールのサブモジュールのすべてのエクスポートを再エクスポートするサマリーモジュールを作成するにはどうすればよいですか?

分類Dev

「サブツリー分割」をgitするが、完全なフォルダ階層を維持するにはどうすればよいですか?

分類Dev

「サブツリー分割」をgitするが、完全なフォルダ階層を維持するにはどうすればよいですか?

分類Dev

JUnit 5でサービスプロバイダー実装モジュールをテストするにはどうすればよいですか?

分類Dev

フォルダー階層内の個別のファイル拡張子をすべて見つけるにはどうすればよいですか?

分類Dev

カーネルモジュールがまだ使用されている場合、それを削除するにはどうすればよいですか?

Related 関連記事

  1. 1

    SystemC:モジュール階層内のすべての信号をトレースするにはどうすればよいですか?

  2. 2

    すべてのサブモジュールを更新するにはどうすればよいですか?

  3. 3

    すべてのモジュールでpytestを実行するにはどうすればよいですか?

  4. 4

    AndroidまたはAndroidEspressoでビュー階層を取得するにはどうすればよいですか

  5. 5

    トラッキングブランチを使用する場合、サブモジュール機能は内部でどのように実装されますか

  6. 6

    両方のシーンのすべての子の無効化されたオブジェクトを含む、階層内のすべてのゲームオブジェクトをループするにはどうすればよいですか?

  7. 7

    setIntervalを含むすべての機能を備えたnodejsモジュールを完全に削除するにはどうすればよいですか?

  8. 8

    テーブル内の階層を見つけるために Teradata 再帰クエリを実行するにはどうすればよいですか?

  9. 9

    日時モジュールをコードに実装するにはどうすればよいですか?

  10. 10

    開発中にcloudflareワーカーのサーバーレス機能をローカルで実行するにはどうすればよいですか?

  11. 11

    機能モジュールでforRoot()にインポートされたサービスを使用するにはどうすればよいですか?

  12. 12

    階層特性を実装するにはどうすればよいですか?

  13. 13

    キーワード関連機能を迅速に実装するにはどうすればよいですか?

  14. 14

    上または下からデータ階層にアクセスするモデルを設計するにはどうすればよいですか?

  15. 15

    Google PageSpeedモジュールが正しく機能しているかどうかをテストするにはどうすればよいですか?

  16. 16

    TreeTableViewコントロールの機能にまたがる列ヘッダーを実装するにはどうすればよいですか?

  17. 17

    PowerShellのScriptblock内でモジュールを実行するにはどうすればよいですか?

  18. 18

    モジュール内のすべてのメソッドが同じ署名を持つようにするにはどうすればよいですか?

  19. 19

    jqueryでテーブルレベルの階層を作成するにはどうすればよいですか?

  20. 20

    doctest内でカスタムモジュールを使用するにはどうすればよいですか?

  21. 21

    サーバーページへの内訳を実装するにはどうすればよいですか?

  22. 22

    ビューからフォームまで、すべてのビジネスロジックを実装するにはどうすればよいですか?

  23. 23

    サーブレットで特定のジョブを使用してQuartzスケジューラを実装するにはどうすればよいですか?

  24. 24

    ESMモジュールのサブモジュールのすべてのエクスポートを再エクスポートするサマリーモジュールを作成するにはどうすればよいですか?

  25. 25

    「サブツリー分割」をgitするが、完全なフォルダ階層を維持するにはどうすればよいですか?

  26. 26

    「サブツリー分割」をgitするが、完全なフォルダ階層を維持するにはどうすればよいですか?

  27. 27

    JUnit 5でサービスプロバイダー実装モジュールをテストするにはどうすればよいですか?

  28. 28

    フォルダー階層内の個別のファイル拡張子をすべて見つけるにはどうすればよいですか?

  29. 29

    カーネルモジュールがまだ使用されている場合、それを削除するにはどうすればよいですか?

ホットタグ

アーカイブ