改进PeriodicTask
Open
official
- Dominant language
- C++
- Stars
- 17.6k
- Forks
- 4.1k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 69
Description
增加PeriodicTaskHandle<>
* 隐藏所需的引用计数
* 隐藏PeoridicTaskManager
* 简化用户对Task的生命周期管理。
```
PeriodicTaskHandle handle(new Task);
handle.ScheduleTaskAt(butil::milliseconds_from_now(...));
handle->MethodOfTask(); // race with Task::OnTriggeringTask()
handle.StopTask(); // non-blocking cancellation, Task::OnDestroyingTask() will be called before next Task::OnTriggeringTask(). Called by ~PeriodicTaskHandle automatically(repeated calling should be OK)
handle.StopAndJoinTask(); // blocking cancellation, Task::OnDestroyingTask() is called before this method returns.
```
实现中注意充分利用bthread_timer已有的取消机制,和task运行在独立的bthread中这一事实。保持最终实现的简洁性。
Contributor guide
Assessment
This issue has not been assessed yet.