プラグインで定義された Rake タスクの読み込みはサポートされていますか?

Discourse フォーラムに対してカスタムタスクを実行できるようにする必要があります。プラグインで定義された rake タスクをロードして本番環境で使用する方法はありますか?

「いいね!」 1

これで動くはずです。プラグイン内のディレクトリに、コアと同じ場所に配置してください。

以前は、別のタスクの後に実行される Rake タスクを作成したことはありますが、単独のタスクを作成したことはありません。

「いいね!」 4

はい、これで動きます。最初は動かないように見えたので質問しましたが、再度試したところ、初回から正常に動作しました。

プラグインの lib/tasks に rake タスクを追加しました。同じように困っている人のために、これで動くことを確認しておきます。

「いいね!」 4

lib/tasks の Rake タスクが二度実行される経験をお持ちの方はいらっしゃいますか?私たちの環境では rake subscriptions:procourse_convert から二度実行されているようです。

https://github.com/ryan-hyer/discourse-subscriptions/blob/master/lib/tasks/procourse_memberships.rake

「いいね!」 2

@kimardenmiller さん、rake タスクが二度実行されてしまう理由について、何か解決策は見つかりましたか?

「いいね!」 1

おそらく、同じメソッドを2つの場所で宣言していたことが原因で、2回実行されてしまったのだと思います。確認はしていませんが、その点をご確認ください。

「いいね!」 1

編集:原因がわかったようです。

これは規約に従っているとは言えません。あるいは、規約に従いすぎているのかもしれません。

plugin.rb で rake ファイルを参照すると、2 回実行されるようです。しかし、rake タスクは参照しなくても含まれるため、初期化中にロードする必要はありません。

@frank.manuel

「いいね!」 1

私の知る限り、これには Discourse 固有のロジックはありません。プラグインに対して ::Rails::Engine を定義した場合、タスクファイルが自動的にロードされるのではないでしょうか?

「いいね!」 1