golang 使用os/exec配合context实现的超时机制

golang 使用os/exec配合context实现的超时机制

在使用golang开发中,调用外部可执行程序通过exec包是我们常用的方式。如何控制超时请见如下样例:

var (
	Timeout    = 3 * time.Second
)

func Command(name string, arg ...string) ([]byte, error) {
	ctxt, cancel := context.WithTimeout(context.Background(), Timeout)
	defer cancel()

	cmd := exec.CommandContext(ctxt, name, arg...)

	var buf bytes.Buffer
	cmd.Stdout = &buf
	cmd.Stderr = &buf

	if err := cmd.Start(); err != nil {
		return buf.Bytes(), err
	}

	if err := cmd.Wait(); err != nil {
		return buf.Bytes(), err
	}

	return buf.Bytes(), nil
}

  

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101662.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle数据库去重查询_oracle查询去重数据

    oracle数据库去重查询_oracle查询去重数据oracle数据库中有如下一张表,包含id,loginid,name,researchtime等字段,其中name字段中的数据有重复,查询数据时要重复数据只取一条,利用row_number()over(partitionby列orderby列desc)方法实现1:selecta.,row_number()over(partitionbya.nameorderbyres…

    2022年10月1日
    3
  • Mybatis模糊查询的四种方式

    Mybatis模糊查询的四种方式Mybatis 模糊查询的四种方式 1 根据姓名模糊查询员工信息 1 1 方式一步骤一 编写配置文件步骤二 测试步骤三 分析此种方式需要在调用处手动的去添加 通配符 1 2 方式二说明 使用方式一可以实现模糊查询 但是有一点不方便的地方就是 在测试类中 调用 selectList 方法传参时需要调用者手动的添加 号通配符 显然是麻烦的 能否在映射配置文件中直接将 号写好呢 有的朋友可能会这么想 好办 直接在配置文件中这么写 形如 1 测试后发现 程序会报错 原因是 缺少单引号 这个

    2025年7月24日
    0
  • RabbitMQ教程(安装与使用详解,Spring集成)

    RabbitMQ教程(安装与使用详解,Spring集成)RabbitMQ教程,面试题。消息队列(MQ),本质是个队列,队列中存放的内容是message。MQ用于不同进程Process/线程Thread之间通信。本文介绍RabbitMQ的使用。RabbitMQ实战教程。

    2022年5月29日
    35
  • smtp.gmail.com_aspnet网站

    smtp.gmail.com_aspnet网站//ASP.NET与GMail免费SMTP服务器//usingSystem.Net.Mail;MailMessagemessage=newMailMessage();message.From=newMailAddress(“User@gmail.com”);//…newMailAddress(“User@gmail.com”,”显示的名字”);me

    2022年9月26日
    3
  • php调用第三方api接口_php不显示错误

    php调用第三方api接口_php不显示错误这是我在尝试创建新内容时不断得到的响应活动:{“error”:{“errors”:[{“message”:”Unknownauthorizationheader”,”locationType”:”header”,”location”:”Authorization”}],”code”:401,”message”:”Unknownauthorizationheader”}}这是我发送的请求(用于…

    2022年9月1日
    5
  • Streak OpenCart 商城自适应主题模板 ABC-0010

    Streak OpenCart 商城自适应主题模板 ABC-0010

    2022年1月14日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号