Suporte para carregar tarefas rake definidas em plugins?

Preciso ser capaz de executar tarefas personalizadas em um fórum Discourse. Existe alguma maneira de carregar tarefas rake definidas em um plugin para que elas possam ser usadas em produção?

Acho que isso deve funcionar. Basta colocá-los no mesmo diretório do plugin onde eles estão no núcleo.

Já fiz isso no passado criando uma tarefa rake que roda após outra, mas nunca criei uma tarefa independente.

Sim, isso funciona. No início, parecia não funcionar para mim, por isso fiz a pergunta, mas tentei novamente e funcionou na primeira tentativa.

Adicionei minha tarefa rake em lib/tasks no meu plugin. Achei bom confirmar que isso funciona para qualquer outra pessoa que esbarre nisso.

Alguém já teve tarefas rake em lib/tasks executadas duas vezes? A nossa parece executar duas vezes a partir de rake subscriptions:procourse_convert.

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

Olá @kimardenmiller, você chegou a descobrir a razão pela qual sua tarefa rake é executada duas vezes?

Acho que pode ter tido algo a ver com declarar o mesmo método em dois lugares, o que, creio eu, fez com que ele fosse executado duas vezes. Não verifiquei, mas dê uma olhada nisso.

EDIT: Acho que descobri como isso acontece.

Não está realmente seguindo a convenção, ou talvez demais.

O problema é se você referenciar o arquivo rake em plugin.rb, ele parece rodar duas vezes, mas a tarefa rake é incluída mesmo que você não a referencie, então não há necessidade de carregá-la durante a inicialização.

@frank.manuel

Pelo que sei, não há nenhuma lógica específica do Discourse aqui. Minha suposição seria que os arquivos de tarefa são carregados automaticamente se você definiu um ::Rails::Engine para o seu plugin?