Taskwarrior

如何管理taskwarrior中的重複任務?

  • February 25, 2021

我無法理解如何在taskwarrior中管理重複性任務

我從一個空數據庫開始:

$ task
[task next]
No matches.

我添加了一個重複的日常任務:

$ task add recur:daily due:later test

它顯示在報告中:

$ task
[task next]

ID Age Recur Due   Description Urg 
2 -     P1D 19.2y test         2.4

1 task
Creating recurring task instance 'test'

如果我這樣標記它:

$ task 2 done
Completed task 2 'test'.
Completed 1 task.
$ task
[task next]
No matches.

它從報告中消失。我相信這是有道理的,因為“我今天完成了日常任務”。

問題是它再也不會在第二天甚至更遠的地方再次出現。我究竟做錯了什麼?

顯然,重複任務應該具有相同的同伴到期設置。例如:

$ task add "a daily recurring task" recur:daily due:eod

$ task add "a weekly recurring task" recur:weekly due:eow

$ task add "a monthly recurring task" recur:monthly due:eom

這樣,可以將每日任務標記為已完成,直到第二天才會再次出現

每週/每月等任務相同

在我深入研究工作細節之前,請注意重複性不是精心設計的。我帶來的是經驗觀察,並且可能會隨著返工而改變。

TLDR;我如何使用和理解復發

task add recur:<duration> due:<first task due date> until:<delete first task by date> wait:<date when task will appear> "my task"

例子:

  • task add recur:daily due:9:00 until:12:00 wait:5:00 eat breakfast
  • 早上 9:00 吃早餐
  • 隱藏任務直到凌晨 5:00
  • 在午餐時間刪除任務
  • 每天創造一個新的事件

細節

重複需要一個due屬性(通過驗證檢查強制執行)。Recurrence 也可以使用untilwait屬性,如果它們存在的話。復發不使用scheduled。並且有一個mask屬性,它跟踪任務是哪個重複實例。

創建新的重複實例時:

  • new task due = parent due + recur * mask
  • until和_wait
  • scheduled從父任務批量複製。實際上,這種意外行為不會破壞您的工作流程,只會影響過濾器和扭曲緊迫性。我之所以這麼說是因為我花了很長時間才發現這沒有按預期工作。

每次taskwarrior執行時,它都會檢查是否該創建下一個事件。偽方程為:

now >= due + recur * (mask + 1)`

請注意,有一個配置值 ,rc.recurrence.limit可用於告訴 taskwarrior 在更遠的地方創建更多事件。

您可以預期下一個事件將在前一個事件的到期日期創建。

引用自:https://unix.stackexchange.com/questions/484247