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


相关推荐

  • IO 模型_netty reactor模型

    IO 模型_netty reactor模型//IOCP2.cpp:Definestheentrypointfortheconsoleapplication.//#include”stdafx.h”#include<WinSock2.h>#include<MSWSock.h>#include<Windows.h>#include&lt…

    2022年9月27日
    3
  • cookie and Flashcookie

    cookie and Flashcookiecookie是浏览器相关的,在同一台电脑上用不同的浏览器访问网站cookie是带不过去的,不同。而每台机子只有一个Flash,所以只要同一台电脑上访问网站,Flashcookie是可以带过去的,是同一个。

    2022年7月14日
    15
  • mysql的反引号怎么打出来_sql注入绕过单引号

    mysql的反引号怎么打出来_sql注入绕过单引号反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select*from`users`whereuser_id=1limit0,1;可以正常执行的,这样使用还可以起到分隔符的作用,如下eg:select*from`users`whereuse…

    2025年6月30日
    4
  • MIPI协议介绍

    MIPI协议介绍MIPI(MobileIndustryProcessorInterface)MIPI联盟是手机工业领导者的集合,成员有Intel,Motorola,Nokia,NXP,Samsung,ST,TI目的是提供给手机应用处理器提供一个统一的接口MIPI联盟用于显示的规格:DCS(DisplayCommandSet):DCS是用于命令模式和显示模式的命令设置DBI

    2022年5月3日
    67
  • java用什么软件_Java编程什么软件最好用?

    java用什么软件_Java编程什么软件最好用?原标题:Java编程什么软件最好用?“工欲善其事必先利其器”,想要学好Java编程开发,除了要有好的学习资源之外,还要有一套适合自己的Java编程软件,好的编程软件能极大提高你的学习和工作效率。那么,Java编程软件有哪些?Java编程用什么软件好呢?下面整理了一些华清Java学院为大家推荐的Java编程软件。Java编程软件有哪些?1、JDKJDK是java初学时用的,比较麻烦,建议开始学习J…

    2022年5月10日
    46
  • 阿里面试失败后,一气之下我图解了Java中18把锁「建议收藏」

    目录乐观锁和悲观锁独占锁和共享锁互斥锁和读写锁公平锁和非公平锁可重入锁自旋锁分段锁锁升级(无锁|偏向锁|轻量级锁|重量级锁)锁优化技术(锁粗化、锁消除)乐观锁和悲观锁悲观锁悲观锁对应于生活中悲观的人,悲观的人总是想着事情往坏的方向发展。举个生活中的例子,假设厕所只有一个坑位了,悲观锁上厕所会第一时间把门反锁上,这样其他人上厕所只能在门外等候,这种状态就是「阻塞」了。回到代码世界中,一个共享数据加了悲观锁,那线程每次想操作这个数据前都会假设其他线程.

    2022年4月18日
    40

发表回复

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

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