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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python文件句柄_Python 文件操作学习 就是这么简单!-文件句柄

    python文件句柄_Python 文件操作学习 就是这么简单!-文件句柄一、前言Python对文件的操作是相当简单的。二、文件操作函数的介绍Python通过open函数来打开文件,语法如下open(file,mode=‘r’,buffering=None,encoding=None,errors=None,newline=None,closefd=True)可以看到,除了第一个file参数是必须的,其它都是可选的。1、file:操作的文件2、mode:操…

    2022年10月18日
    0
  • 网站程序下载_可以免费下载程序的网站

    网站程序下载_可以免费下载程序的网站1、博客网站:Wordpress、zblog2、门户网站:Dedecms、phpcms、帝国cms3、论坛网站:Discuz4、企业网站:Dedecms、phpcms、帝国cms5、商城网站:

    2022年8月6日
    3
  • Spring Boot 中使用@KafkaListener并发批量接收消息[通俗易懂]

    Spring Boot 中使用@KafkaListener并发批量接收消息[通俗易懂]kakfa是我们在项目开发中经常使用的消息中间件。由于它的写性能非常高,因此,经常会碰到Kafka消息队列拥堵的情况。碰到这种情况时,有不能直接清理整改消息队列,因为还有别的服务正在使用该队列。因此只能额外启动一个相同名称的consumer-group来加快消息消费(经测试,如果该topic只有一个分区,实际上再启动一个新的消费者作用不到)。具体代码在这里,欢迎加星号,fork。官方文档……

    2022年10月15日
    0
  • [Node.js]在windows下不得不防的小错误

    [Node.js]在windows下不得不防的小错误

    2021年12月2日
    216
  • 神经网络学习小记录-番外篇——常见问题汇总

    神经网络学习小记录-番外篇——常见问题汇总神经网络学习小记录-番外篇——常见问题汇总前言问题汇总1、下载问题2、环境配置问题3、shape不匹配问题a、训练时shape不匹配问题b、预测时shape不匹配问题4、nomodule问题5、显存问题6、训练问题7、乱七八糟的问题前言搞个问题汇总吧,不然一个一个解释也挺难的。问题汇总1、下载问题问:up主,可以给我发一份代码吗,代码在哪里下载啊?答:Github上的地址就在视频简介里。复制一下就能进去下载了。问:up主,为什么我下载的代码里面,model_data下面没有.pth或者.h

    2022年5月4日
    82
  • 基于matlab的直流电机仿真,基于MATLAB的无刷直流电机控制系统仿真

    基于MATLAB的无刷直流电机控制系统仿真(论文10000字)摘要:本论文主要关注无刷直流电机的调速控制系统,学习此电机的运行原理和PWM控制方法,简述了调速的概念、控制原理与方法、现状,并且学习并使用无刷直流电机的换相控制方法,并对无刷直流电动机调速系统进行设计。并通过Simulink来建模仿真和实验模拟得知电机的运行情况,并且根据仿真结果对无刷直流电机开始学习分析,从而达到对无刷直流电机的转速…

    2022年4月11日
    84

发表回复

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

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