精华内容
下载资源
问答
  • http://blog.sina.com.cn/s/blog_63041bb80102uy5o.html背景:最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置函数调用超时机制。代码:import timeimport signaldef test(i):...

    http://blog.sina.com.cn/s/blog_63041bb80102uy5o.html

    背景:

    最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置了函数调用超时机制。

    代码:import time

    import signal

    def test(i):

    time.sleep(i%4)

    print "%d within time"%(i)

    return i

    if __name__ == '__main__':

    def handler(signum, frame):

    raise AssertionError

    i = 0

    for i in range(1,10):

    try:

    signal.signal(signal.SIGALRM, handler)

    signal.alarm(3)

    test(i)

    i = i + 1

    signal.alarm(0)

    except AssertionError:

    print "%d timeout"%(i)

    说明:

    1、调用test函数超时监控,使用sleep模拟函数执行超时

    2、引入signal模块,设置handler捕获超时信息,返回断言错误

    3、alarm(3),设置3秒闹钟,函数调用超时3秒则直接返回

    4、捕获异常,打印超时信息

    程序执行结果:1 within time

    2 within time

    3 timeout

    4 within time

    5 within time

    6 within time

    7 timeout

    8 within time

    9 within time

    展开全文
  • import eventlet eventlet.monkey_patch()#必须加这条代码 with eventlet.Timeout(2.5, False)://2.5为执行时间 response_status = self.testProxy(url, proxy)
    import eventlet
    eventlet.monkey_patch()#必须加这条代码
    with eventlet.Timeout(2.5, False)://2.5为执行时间
         response_status = self.testProxy(url, proxy)

     

    展开全文
  • 标准C库中只有获取系统时间的API,好像还没有设置系统时间的API,本文将谈谈如何在linux平台设置系统时间,最后给出一个与平台无关的设置系统时间的封闭函数。 linux是如何管理时间的? 在系统启动时,Linux操作...

    标准C库中只有获取系统时间的API,好像还没有设置系统时间的API,本文将谈谈如何在linux平台设置系统时间,最后给出一个与平台无关的设置系统时间的封闭函数。

     

    linux是如何管理时间的?

    在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔11分钟会将系统时间写入CMOS,同步时间。从这可以看出,获取系统时间有两个途径,一种是从CMOS中读,一种是从系统中读,但修改时间却只有一种,即修改linux系统中的时间,而修改CMOS中的时间是无效的,因为CMOS中的时间会被定时重写掉。另外还有一点要注意,修改了系统时间并不是马上生效的,假如你修改了系统时间并马上关机,再开机的时候,时间还是原来的,因为修改的时间还没有来得及写入CMOS中。

    Linux下设置系统时间:

    1.Linux下设置系统时间的函数有好几个,先来看看最常用的stime()函数,这个函数只能精确到秒。

    #define _SVID_SOURCE /*如果你使用的是glib2的话,必须先定义这个宏才能使用*/

    #include <time.h>

    int stime(time_t *t);

    参数说明:

    t是以秒为单位的时间值,从GMT1970年1月1日0时0分0秒开始计算。

    返回值:

    成功返回0,错误返回-1,errno错误码,EFAULT表示传递的参数错误,如时间值是无效的值,EPERM表示权限不够,注意只有root用户才有修改系统时间的权限。如果要让普通程序修改系统时间,可以先切换到root用户操作,修改完成后,再切换到普通用户,或者用命令chmod +s给执行文件加上root用户的权限。

    例子:

     

    int main(void)
    {
            long int t = 111111111;
    
            printf("设置系统时间前的时间是:");
            fflush(stdout);
            system("date");
    
            stime(&t);
    
            printf("设置系统时间后的时间是:");
            fflush(stdout);
            system("date");
    
            return 0;
    }
    <img alt="" data-cke-saved-src="https://img-blog.csdn.net/20180109215832136?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzM3MDY2NzM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" src="https://img-blog.csdn.net/20180109215832136?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzM3MDY2NzM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="margin-left:24px" />
    
    

     

     

    2.通过settimeofday()函数来设置系统时间,这个函数设置的精度可以精确到微秒。

    #include <time.h>

    int settimeofday(const struct timeval *tv , const struct timezone *tz);

    struct timeval {

        time_t      tv_sec;     /* seconds */

        suseconds_t tv_usec;    /* microseconds */

    };

    struct timezone {

        int tz_minuteswest;     /* minutes west of Greenwich */

        int tz_dsttime;         /* type of DST correction */

    };

    tz参数为时区,时区结构中tz_dsttime在linux中不支持,应该置为0,通常将参数tz设置为NULL,表示使用当前系统的时区。该函数是glib中的,但在mingw中没有实现。

    举例:

     

     1 #include <stdio.h>
      2 #include <sys/time.h>
      3 #include <unistd.h>
      4 
      5 int main(void)
      6 {
      7         struct timeval stime;
      8 
      9         gettimeofday(&stime,NULL);
     10         printf("现在的时间秒数是:%ld,毫秒数是:%ld\n现在的时间是:",stime.tv_sec,stime.tv_usec);
     11         fflush(stdout);
     12         system("date");
     13 
     14         stime.tv_sec = 123456789;
     15         settimeofday(&stime,NULL);
     16         printf("现在的时间秒数是:%ld,毫秒数是:%ld\n现在的时间是:",stime.tv_sec,stime.tv_usec);
     17         fflush(stdout);
     18         system("date");
     19 
     20 
     21 
     22         return 0;
     23 }
    


    结果:

     

    3.设置CMOS时间,其实它是通过RTC(Real-time clock)设备驱动来完成的,你可以用ioctl()函数来设置时间,当然也可以通过操作/dev/rtc设备文件,在此就不详细说明了。

     

    二、一个封装的设置系统时间的函数

    //设置成功返回true,否则返回false

           bool set_local_time(struct tm& t)

    {

    #ifdef _WIN32

           SYSTEMTIME st;

           memset(&st, 0, sizeof(SYSTEMTIME));

           st.wYear = t.tm_year + 1970; //注意struct tm结构中的年是从1970年开始的计数

           st.wMonth = t.tm_mon + 1; //注意struct tm结构中的月份是从0开始的

           st.wDay = t.tm_mday;

           st.wHour = t.tm_hour;

           st.wMinute = t.tm_min;

           st.wSecond = t.tm_sec;

           if(!SetLocalTime(&st))

                  return true;

                  else

                         return false;

           #else

                  //将struct tm结构时间转换成GMT时间time_t

                  struct time_t st;

                  st = mktime(&t);

                  if(st==-1)

                         return false;

                  if(!stime(st))

                         return true;

                  else

                         return false;

    #endif

    }

     
     

     

     

     

    展开全文
  • 在我试图为我的函数during runtime设置超时秒数,这使我能够灵活地传递不同的timeout seconds,甚至不打开脚本(测试.py)在在超时.py在from functools import wrapsimport errnoimport osimport signalclass ...

    我遵循this解。在

    我试图为我的函数during runtime设置超时秒数,这使我能够灵活地传递不同的timeout seconds,甚至不打开脚本(测试.py)在

    在超时.py在from functools import wraps

    import errno

    import os

    import signal

    class TimeoutError(Exception):

    pass

    def timeout(seconds=60, error_message=(os.strerror(errno.ETIMEDOUT)).upper()):

    def decorator(func):

    def _handle_timeout(signum, frame):

    raise TimeoutError(error_message)

    def wrapper(*args, **kwargs):

    signal.signal(signal.SIGALRM, _handle_timeout)

    #print "Timeout seconds =: " , seconds

    signal.alarm(seconds)

    try:

    result = func(*args, **kwargs)

    finally:

    signal.alarm(0)

    return result

    return wraps(func)(wrapper)

    return decorator

    在主.py(只接受运行时传递的任何参数)

    ^{pr2}$

    在测试.py在from timeout import timeout

    from timeout import TimeoutError

    #@timeout(30)

    @timeout() #

    def func(args1,args2,timeout_sec):

    #do something

    要运行此程序:python main.py abc abc 45 #this overrids seconds from timeout.py

    在测试.pytimeout()或timeout(30)可以工作,但是有没有什么方法可以使它成为动态的,并在@timeout(arg3)中以“arg3”的形式传递秒数

    我有什么办法可以做到这一点吗?在

    展开全文
  • MySQL自定义函数函数与存储过程类似,也是一组预先编译好的SQL语句的集合,但是存储过程...结尾所以需要使用delimiter来重新设置结束标记#函数体中只有一句话时可以省略beginendcreatefunction函数名(参数列表)ret...
  • # coding=utf-8import signalimport timedef set_timeout(num, callback):def wrap(func):def handle(signum, frame): # 收到信号 SIGALRM 后的回调函数,第一个参数是信号的数字,第二个参数是the interrupted ...
  • 如下所示:# coding=utf-8import signalimport timedef set_timeout(num, callback):def wrap(func):def handle(signum, frame): # 收到信号 SIGALRM 后的回调函数,第一个参数是信号的数字,第二个参数是the ...
  • 本篇文章是对Linux下的时间函数:设置以及获取时间的方法进行了详细的分析介绍,需要的朋友参考下
  • linux c获得时间设置时间 函数

    千次阅读 2018-04-11 11:04:41
    设置操作系统时间 参数:*dt数据格式为"2006-4-20 20:30:30" 调用方法:  char *pt="2006-4-20 20:30:30";  SetSystemTime(pt); **************************************************/ int SetSystemTime(void...
  • // 设置时间 t1 = mktime(&tm); //获取时间 ptm = localtime(&t1); sprintf(buf, "%04d-%02d-%02d %02d:%02d:%02d", ptm->tm_year + 1900, ptm->tm_mon + 1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm...
  • 2、使用“date_default_timezone_set”函数设置一个脚本中所有日期时间函数所使用的默认时区。推荐:《PHP视频教程》系统时区设置对日期时间进行操作是很常见的编程任务,但在进行操作之前,我们应该确保时区的一致...
  • lwip设置recv接收函数超时时间

    千次阅读 2020-02-22 16:45:30
    在socket编程中,经常使用recv函数阻塞等待接收数据。 如果对方GG了(接收到你的数据之后并没有返回,你这里会一直...下方是一个demo,其中使用了ulog组件可以方便的查看日志时间,我们把超时时间设置的5s,可以看到...
  • function a(){ //... return true; } function b(){ //... return false; } 现在开始调用a(); 设想是如果a(),1.2秒后未返回结果,立马调用b(); 有啥漂亮的处理方法?
  • linux 通过系统函数设置系统时间

    千次阅读 2019-05-23 11:38:07
    我们都熟悉用date来设置系统时间,下面我来介绍下通过系统函数设置系统时间 #include <stdio.h> #include<sys/time.h> #include<unistd.h> #include <time.h> int SetSystemTime(char...
  • Qt中设置系统时间,调用system 函数

    千次阅读 2019-04-30 14:12:33
    Qt中设置系统时间,调用system 函数
  • SETSOCKOPT 设置阻塞SOCKET函数超时时间

    千次阅读 2013-04-29 15:32:01
    SETSOCKOPT 设置阻塞SOCKET函数超时时间 IOCTLSOCKET 设置SOCKET函数为阻塞或非阻塞 1,ioctlsocket() #include   This function controls the I/O mode of a socket. int ioctl...
  • 对一个函数或一段代码的执行有时间的要求(如获取输入、从网络取得信息),当希望对其设置一个最大的等待时间、超时时间时,而不论其有无得到理想的返回值都进行返回,可以使用该方法。该方法将确保指定的代码在指定...
  • 衰减函数decay functionion 高斯衰减 GET _search { "_source": ["title","release_date"], "query": { "function_score": { "query": { "match_all": {} }, "functions": [ ...
  • 如下图,设置头部注释、类注释以及函数注释,时间、用户名、文件名称等随机改变的属性,直接使用其下方已经定义的属性即可。 上图模板代码: /** * Notes: * User: ${USER} * DateTime: ${DATE} ${TIME} ...
  • 而其它几项内容不显示,经过反复检查,发现程序都没有错误,是什么原因呢,其中有一个可能原因是执行的时候存在某方面的冲突,这种情况可以用setTimeout来设置执行时间差来解决问题。 例如: response.Write("<...
  • 1.函数指针 type (*name)(参数){} ----- 相当于接口。 可以作为一般函数的参数进行调用。 举例:线程调用思路。 ----本身是指针,指针指向的是一个函数类型的地址。 2.指针函数 ---- 本身是函数函数的...
  • 今天在上课的时候在测试MSSQL建表的时候 注册时间默认值用getdate()可以获取插入值时候的时间create table temp( id int PRIMARY key, in_time datetime NOT NULL default getdate() )但是在MYSQL建表练习的时候不能...
  • pyspark参数设置,常用时间函数

    千次阅读 2018-08-16 16:39:11
    #常用时间函数 from __future__ import division , print_function , absolute_import import sys , time , datetime from pyspark . sql import SparkSession import pyspark . sql . functions ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,176
精华内容 4,870
关键字:

时间设置函数