本文同时参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
runner总体设计
1 | go复制代码// Package runner 管理进程的运行和生命周期。 |
从总体设计上,我们可以看出runner具备以下功能:
- 程序如果在分配的超时时间内完成工作,可以正常终止;
- 程序没有及时完成工作,就会选择“自杀”;
- 程序如果接收到操作系统发送的中断事件,程序立刻试图清理状态并停止工作。
runner细节设计
1 | go复制代码// 添加任务到 Runner。 任务是一个接受 int整数型变量的函数。 |
以上代码分别是任务的添加,以及任务开始,执行,中断步骤,共同构成了一个完整的生命周期。
举个例子
1 | go复制代码package main |
模拟代码简单的设置了任务并展示了任务执行成功以及超时会出现的现象
1 | yaml复制代码2021/10/18 01:09:39 Starting work. |
本文转载自: 掘金