Exportieren Sie die Ansichten der Organisationsagenda regelmäßig in Emacs

899
progo

Um die Ansichten der Organisationsagenda in eine Textdatei für die weitere Verarbeitung zu exportieren, werde ich (org-batch-store-agenda-views)regelmäßig als Emacs-Stapelverarbeitungsjob ausgeführt, der von cron ausgeführt wird. Da beim Starten einer emacs-Instanz für einen 500-ms-Funktionsaufruf ein gewisser Aufwand anfällt, möchte ich, dass eine meiner ständig laufenden Instanzen dies für mich erledigt.

Es gibt eine Timers-Bibliothek in Emacs, aber die bereitgestellten Funktionen rufen die Funktion nicht wie gewünscht auf:

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

Wie funktioniert das? Das Endziel ist, so etwas in meine .emacsInit zu pflanzen (funktioniert auch nicht):

 (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.")) 
0
Können Sie erklären, warum Sie glauben, dass es nicht funktioniert? Ich erstellte eine einfache Funktion `(defun foo () (Nachricht" GO "))" und führte dann "(Laufzeit 5 5 'foo)" aus und sah die Nachrichten im Puffer "* Messages *", bis ich auftauchte den Timer abgebrochen. verdammelt vor 10 Jahren 0
@verdammelt: Ganz einfach. `'org-batch-store-agenda-views' schreibt eine ASCII-Agenda in eine Datei (das gleiche Zeug wie` Cc ae`) und schreibt die Datei nicht, wenn der Timer ausgeführt wird. progo vor 10 Jahren 0

1 Antwort auf die Frage

0
progo

Ok, beim Debuggen habe ich die Funktion einfach unkompliziert umwickelt und sie hat angefangen zu arbeiten. Wahrscheinlich übergibt der Timer die Funktion in Argumenten etwas komisch oder die Schließung war nicht richtig. In jedem Fall. :)

(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)