我在理解如何在taskwarrior 中管理重复性任务时遇到问题
我从一个空的数据库开始:
$ task
[task next]
No matches.
Run Code Online (Sandbox Code Playgroud)
我添加了一个重复的日常任务:
$ task add recur:daily due:later test
Run Code Online (Sandbox Code Playgroud)
它显示在报告中:
$ task
[task next]
ID Age Recur Due Description Urg
2 - P1D 19.2y test 2.4
1 task
Creating recurring task instance 'test'
Run Code Online (Sandbox Code Playgroud)
如果我将其标记为这样:
$ task 2 done
Completed task 2 'test'.
Completed 1 task.
$ task
[task next]
No matches.
Run Code Online (Sandbox Code Playgroud)
它从报告中消失。我相信这是有道理的,因为“我今天完成了日常任务”。
问题是它在第二天甚至更远的地方再也不会出现。我究竟做错了什么?
我在处理重复性任务并想通了:
一些背景:创建重复性任务会创建一个parent
生成child
任务的任务。
来自:https : //taskwarrior.org/docs/recurrence.html
通过一些测试,我发现使用以下命令:
(ins)[>]task add "test" recur:5s due:30s
Created task 27 (recurrence template).
Run Code Online (Sandbox Code Playgroud)
首先,due
影响第一个子任务。每个子任务在到期时间(在我的示例中为30 秒)之后产生,然后在重复时间(示例中为 5 秒)
(ins)[>]task
[task next]
ID Age Deps P Project Recur Due Description
22 - PT5S 30s test
#some time later...
(ins)[>]task
[task next]
ID Age Deps P Project Recur Due Description
22 60s PT5S -30s test
23 30s PT5S -25s test
24 25s PT5S -20s test
25 20s PT5S -15s test
26 15s PT5S -10s test
27 10s PT5S -5s test
28 5s PT5S - test
29 0s PT5S 5s test
Run Code Online (Sandbox Code Playgroud)
然而,due
还会影响另一件事:当第二个子任务生成时(第二个子任务在递归时间到期,因此第三个子任务在递归时间后生成,依此类推)。
这就是为什么你看不到你的第二个孩子的任务,因为你必须在到期日设置为later
这是19.2 years
根据你的例子在未来的时间; 因此,第二个子任务只会在19.2 years
一段时间后生成(之后每个子任务都会生成daily
)。
归档时间: |
|
查看次数: |
1969 次 |
最近记录: |