如何在taskwarrior中管理重复任务?

如何在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.

它从报告中消失。我相信这是有道理的,因为“我今天完成了日常任务”。

问题是它在第二天甚至更远的时间里再也不会出现。我究竟做错了什么?

答案1

在深入研究工作细节之前,请注意,复发不是精心设计的。我带来的是经验观察,可能会因返工而改变。

太长了;我如何使用和理解重复

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属性(通过验证检查)。递归也可以使用untilwait属性(如果存在)。复发不使用scheduled。还有一个mask属性可以跟踪任务是哪个重复发生的实例。

当创建新的重复实例时:

  • new task due= parent due+ recur*mask
  • until和的数学相同wait
  • scheduled从父任务批量复制。实际上,这种意外行为不会破坏您的工作流程,只会影响过滤器并影响紧迫性。我之所以这么说,是因为我花了很长时间才发现这并没有按预期工作。

每次taskwarrior运行时,它都会检查是否到了创建下一个事件的时间。伪方程为:

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

请注意,有一个配置值rc.recurrence.limit,可用于告诉 taskwarrior 进一步创建更多事件。

您可以预期下一个事件将在上一个事件的到期日创建。

答案2

显然,重复执行的任务应该有相同的同伴到期的设置。例如:

$ 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

这样,每日任务就可以标记为已完成,并且直到第二天才会再次显示

每周/每月等任务也是如此

相关内容