durante Jobs::ProcessPost
Consigo recriar na linha de comando:
enquanto consigo alcançá-lo com sucesso por:
Acredito que possa estar relacionado a isto:
committed 01:28PM - 23 May 22 UTC
Previously, with the default `editing_grace_period`, hotlinked images were pulle… d 5 minutes after a post is created. This delay was added to reduce the chance of automated edits clashing with user edits.
This commit refactors things so that we can pull hotlinked images immediately. URLs are immediately updated in the post's `cooked` HTML. The post's raw markdown is updated later, after the `editing_grace_period`.
This involves a number of behind-the-scenes changes including:
- Schedule Jobs::PullHotlinkedImages immediately after Jobs::ProcessPost. Move scheduling to after the `update_column` call to avoid race conditions
- Move raw changes into a separate job, which is delayed until after the ninja-edit window
- Move disable_if_low_on_disk_space logic into the `pull_hotlinked_images` job
- Move raw-parsing/replacing logic into `InlineUpload` so it can be easily be shared between `UpdateHotlinkedRaw` and `PullUserProfileHotlinkedImages`
Contém:
end
end
# onebox may have added some links, so extract them now
def extract_links(post)
TopicLink.extract_from(post)
QuotedPost.extract_from(post)
end
def enqueue_pull_hotlinked_images(post)
Jobs.cancel_scheduled_job(:pull_hotlinked_images, post_id: post.id)
Jobs.enqueue(:pull_hotlinked_images, post_id: post.id)
end
end
end
Neste contexto, poderia exigir um :: inicial?
1 curtida
david
(David Taylor)
Maio 26, 2022, 11:35am
2
Hmm, adicionar um :: inicial certamente o corrigiria… mas não deveria ser necessário
Dado que a chamada vem de dentro de ::Jobs::ProcessPost, o Ruby deve subir na árvore. Primeiro, ele procurará por ::Jobs::ProcessPost::Jobs, depois ::Jobs::Jobs e, finalmente, o módulo ::Jobs.
O erro que você está vendo sugere que algo está definindo ::Jobs::Jobs… o que é estranho! Dando uma olhada na minha instância de desenvolvimento:
[1] pry(main)> Jobs::Jobs
=> Jobs::Jobs
[2] pry(main)> Jobs::Jobs.constants
=> [:RemapOldBotImages, :GrantBadges]
Parece que essas linhas em discourse-narrative-bot estão causando problemas. Se eu as comentar, isso resolve o problema.
if Rails.env == "development"
# workaround, teach reloader to reload jobs
# if we do not do this then
#
# 1. on reload rails goes and undefines Jobs::Base
# 2. as a side effect this undefines Jobs::BotInput
# 3. we have a post_edited hook that queues a job for bot input
# 4. if you are not running sidekiq in dev every time you save a post it will trigger it
# 5. but the constant can not be autoloaded
Rails.configuration.autoload_paths << File.expand_path('../autoload', __FILE__)
end
A boa notícia é que é apenas para desenvolvimento - relacionado aos caminhos dos arquivos dos jobs que não correspondem aos nomes dos módulos. Aqui está um PR para limpar as coisas:
https://github.com/discourse/discourse/pull/16924
Obrigado pelo relato @merefield
4 curtidas
Ah, sim, estranho e explica por que a Produção não explodiu!
Obrigado pela rápida resposta!!
2 curtidas
david
(David Taylor)
Fechado
Maio 27, 2022, 7:00am
4
Este tópico foi automaticamente fechado após 17 horas. Novas respostas não são mais permitidas.