Exportar exibições de agenda org periodicamente no Emacs

0

Para exportar exibições da agenda organizacional em um arquivo de texto para processamento posterior, executo (org-batch-store-agenda-views) periodicamente como uma tarefa em lote do Emacs executada pelo cron. Como há alguma sobrecarga na inicialização de uma instância do emacs para fazer uma chamada de função de 500 ms, desejo que uma das instâncias em execução constante faça isso por mim.

Há uma biblioteca Timers no Emacs, mas as funções fornecidas são ' • chame a função como desejado:

(run-with-idle-timer 2 1 'org-batch-store-agenda-views)

(run-at-time 5 5 'org-batch-store-agenda-views)

Qual é a maneira de fazer isso funcionar? O objetivo final é plantar algo assim no meu .emacs init (também não funciona):

  (let ((time-interval (* 60 10)))
    (defvar my-org-agenda-updater-handle
      (run-with-timer (random time-interval) time-interval
                      'org-batch-store-agenda-views)
      "A timer object that denotes our running batch job."))
    
por progo 12.01.2014 / 18:35

1 resposta

0

Ok, durante a depuração, eu fiz um envoltório simples em torno da função e ela começou a funcionar. Provavelmente o cronômetro passa a função de algo engraçado em argumentos ou o fechamento não estava certo. Em qualquer evento. :)

(defun progo-run-agenda-store ()
  ""
  (message "Agenda to be exported... ")
  (org-batch-store-agenda-views)
  (message "Agenda exported!"))

(run-at-time 5 5 'progo-run-agenda-store)
    
por 12.01.2014 / 19:44