Tenho várias consultas que precisam ser executadas todas as noites. Achei que poderia fazer o seguinte:
cd /var/discourse
./launcher enter app
su postgres
crontab -e
... adicione minhas tarefas e salve ...
mas recebo um erro:
postgres@EN-Discourse-Forums-app:~$ crontab -e
crontab: instalando novo crontab
crontab: crontabs/postgres: rename: Operação não permitida
crontab: edições deixadas em /tmp/crontab.7kGYwA/crontab
Isso é possível?
Falco
(Falco)
Outubro 4, 2019, 7:11pm
2
The more “Discourse-way” of doing that would be creating a plugin with the queries as scheduled jobs.
Check this example:
# frozen_string_literal: true
module ::Jobs
class PatreonSyncPatronsToGroups < ::Jobs::Scheduled
every 6.hours
sidekiq_options retry: false
def execute(args)
unless SiteSetting.patreon_enabled && SiteSetting.patreon_creator_access_token &&
SiteSetting.patreon_creator_refresh_token
return
end
::Patreon::Patron.update!
::Patreon.set("last_sync", at: Time.now)
end
end
end
Inside the execute block you can do anything, like this job who runs SQL:
3 curtidas
Potentially, yes, but this doesn’t let others who may need to change the behavior of these queries and our servers use something they understand. It is very common to use CRON to run queries.
Falco
(Falco)
Outubro 4, 2019, 7:18pm
4
5 curtidas
system
(system)
Fechado
Julho 5, 2023, 12:32pm
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.