Atribuir aos usuários um horário de digest aleatório?

Recentemente migrei um fórum phpBB com cerca de 1400 usuários para o Discourse. Exceto por um punhado de contas, todos os resumos parecem ser enviados a partir das 8h. Existe alguma maneira de atribuir aos usuários um horário aleatório entre 00:00 e 23:00?

– Geoff

Eu não sei, mas me disseram (pela IA):

https://ask.discourse.com/discourse-ai/ai-bot/shared-ai-conversations/wisnZ2lMtzSY1ji_QM8BiA

Click saver: não, se a IA soubesse e não estivesse alucinando.

Acho que você poderia modificar user_stats.digest_attempted_at para todos os seus usuários com um valor aleatório. Talvez você adicionasse de 0 a 24 horas ao valor atual de user_stats.digest_attempted_at.

Era mais ou menos o que eu imaginava que teria que fazer. No entanto, estou acostumado a ambientes de servidor compartilhado onde há um servidor de banco de dados ao qual posso me conectar remotamente. Sou muito bom em SQL, mas estou perdido em como me conectar ao banco de dados em uma droplet da DigitalOcean. Qualquer dica seria muito apreciada.

Você quer fazer isso a partir do Rails em vez de modificar o banco de dados diretamente.

Mas você pode

./launcher enter app
su - postgres
psql discourse

e mexer nisso.

Você pode dar uma olhada em Operações em Massa Administrativas e, eu acho, encontrar alguns exemplos que se parecem com

users=User.where(something)
users.each do |user|
   user.update(field: value)
end

Muito obrigado pelas dicas. Decidi que fazer isso pelo Rails era uma curva de aprendizado muito grande, então descobri como fazer isso pelo postgres. Aqui estava minha solução:

./launcher enter app
su - postgres
psql discourse
UPDATE user_stats SET digest_attempted_at = digest_attempted_at - interval '1' DAY * random();

Parece certo para mim.

Acho que para isso é seguro o suficiente. Entendo a abordagem de ir com o que você sabe, mas o Rails oferece muitas proteções (garantindo que as coisas sejam aplicadas e as tabelas permaneçam conectadas e assim por diante).

Fico feliz que você tenha resolvido!

Verificando os logs de e-mail, tudo agora está distribuído uniformemente. Obrigado pela sua ajuda!

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.