GVKun编程网logo

在Python中,如何在特定时间之前使线程休眠?(python 线程休眠)

20

对于想了解在Python中,如何在特定时间之前使线程休眠?的读者,本文将是一篇不可错过的文章,我们将详细介绍python线程休眠,并且为您提供关于c#–使用Rx排队操作我不希望在特定时间之前执行?、C

对于想了解在Python中,如何在特定时间之前使线程休眠?的读者,本文将是一篇不可错过的文章,我们将详细介绍python 线程休眠,并且为您提供关于c# – 使用Rx排队操作我不希望在特定时间之前执行?、Cron作业删除在特定时间之前创build的文件、perl – 如何在特定时间之后从日志文件中打印行、python – 如何从任何地方在特定时区找到时间的有价值信息。

本文目录一览:

在Python中,如何在特定时间之前使线程休眠?(python 线程休眠)

在Python中,如何在特定时间之前使线程休眠?(python 线程休眠)

我知道我可以通过以下方法使线程休眠特定时间:

time.sleep(NUM)

如何让线程在凌晨2点之前进入睡眠状态?我需要做数学以确定直到凌晨2点的秒数吗?还是有一些库函数?

(是的,我知道Windows中的cron和等效系统,但是我想在python中正常睡眠我的线程,而不依赖于外部刺激或过程信号。)

答案1

小编典典

这是一个半屁股解决方案,它不考虑时钟抖动或时钟调整。请参阅注释以了解解决方法。

import timeimport datetime# if for some reason this script is still running# after a year, we''ll stop after 365 daysfor i in xrange(0,365):    # sleep until 2AM    t = datetime.datetime.today()    future = datetime.datetime(t.year,t.month,t.day,2,0)    if t.hour >= 2:        future += datetime.timedelta(days=1)    time.sleep((future-t).total_seconds())    # do 2AM stuff

c# – 使用Rx排队操作我不希望在特定时间之前执行?

c# – 使用Rx排队操作我不希望在特定时间之前执行?

简介:我有一个Web应用程序,可以在业务对象上执行工作流,有时需要在步骤之间有意等待几秒或几分钟.我期待(可能通过Rx.NET),改进这些工作流程的执行,这样我就不会耗尽ThreadPool,并在系统负载很重时使网站无响应.

工作流程的一个非常简化的版本是:

>创建一个对象
>从系统A将数据加载到其中
>将此数据发布到系统B.

如果系统A关闭,我的应用程序将等待并稍后重试.等待时间是在GMail不断升级的重试延迟之后建模的:等待1秒,每次后续重试加倍(最多1小时).该应用程序痴迷地将状态保存到数据库,因此如果整个应用程序爆炸,当它重新启动时,它将恢复它停止的所有工作流程.

目前(请温和)工作流程中的每个步骤都是通过调用ThreadPool.QueueUserWorkItem来排队调用Thread.Sleep的方法来执行,如果需要进行上述重试延迟,则实际执行该步骤.

如果系统运行良好(没有错误),它可以轻松处理我们抛出的所有流量,并且ThreadPool可以很好地管理所有这些工作流实例的并行执行.但是如果系统B停机一段时间,重试计数就会延迟增长,很快ThreadPool就会充满所有睡眠线程,导致网站对新请求没有响应.

基本上我想将所有这些待处理的工作流抛出到一个排队的队列中(最后执行时间所需的重试延迟).尽管阅读了很多关于Rx并且很兴奋的事情,但我从来没有机会使用它,但似乎它可能是一种有用的方法来处理这个问题.如果Rx能够在他们准备开火的时候神奇地管理吐出这些物体,那么它似乎就是这样

>大大简化和澄清这种逻辑,并且
>防止浪费使用大量刚刚在99%的时间内睡觉的线程

对Rx新手的任何指导都会非常感激,即使它只是为了解释为什么这实际上不是Rx的一个好用例.

解决方法

在Rx论坛上查看这篇文章.对于您想要解决的问题,非常方便的运算符: http://social.msdn.microsoft.com/Forums/en-US/rx/thread/af43b14e-fb00-42d4-8fb1-5c45862f7796/

Rx是处理这类(特别是)问题的好方法,因为你可以拥有异步函数/ observables并将通用运算符应用于所描述的Retry运算符.

Cron作业删除在特定时间之前创build的文件

Cron作业删除在特定时间之前创build的文件

我有这个cron作业来清空一个临时文件夹我有一天一次:

rm -rf /home/username/public_html/temp/*

我希望这个cron作业删除所有在5分钟之内运行的文件,以确保我的脚本不再需要这些文件。

假设我将cron作业设置为每天早上10:00运行。我希望它删除此文件夹中在09:55 AM之前创build的所有文件

非常感谢你的专家!

最好的免费替代WHM / Cpanel

使用CRON作业来访问url?

CakePHP 1.3:高cpu使用率

如何禁用cPanel的URL

主文件夹来自主文件夹

如何在共享主机环境中closures特定目录的PHP safe_mode?

只有Nginx或Nginx(反向代理)+ Apache

如何正确地创build一个可以通过http访问的SVN仓库? (在public_html内)?

Apache mod_security阻止国家

在URL中使用“〜”代字号有什么用处?

如果你使用的是GNU find ,试试这个:

find /home/username/public_html/temp -type f -mmin +5 -delete

还应该使用FreeBSD或许多其他版本的find 。

替代解决方案将是:

点cron作业每天执行一次PHP文件。

$dir = 'your/directory/'; foreach(glob($dir.'*.*') as $v){ $last_modified = filemtime($v);//get the last modified time of file $fmtime=date("h:i:s",$last_modified); $currentTime=date("h:i:s"); if (//check here if your file is created before 09:55Am) unlink($v); }

谢谢。

类似杰弗里斯的答案,我会建议这样的事情:

for i in `find /home/username/public_html/temp -type f -mmin +5` do rm $i done

perl – 如何在特定时间之后从日志文件中打印行

perl – 如何在特定时间之后从日志文件中打印行

我想打印所有行,这些行可以说是在perl脚本内perl的localtime函数返回值之后发生的.我试过以下的东西:

my $timestamp = localtime();
open(CMD,'-|','cat xyz.log | grep -A1000 \$timestamp' || die ('Could not open');
while (defined(my $line=<CMD>)){
    print $line;
}

如果我用xyz.log中的actaul time组件替换cat命令中的$timestamp,那么它会打印行,但不打印$timestamp变量.

有没有其他方法可以打印日志文件中当前时间之后发生的行或者我如何改进上述命令?

解决方法

永远不会在Perl中评估您的$timestamp,因为它只出现在单引号中.但为什么要出来shell以匹配字符串并处理文件? Perl对此更好.

这是一个直接的方法,然后是一个基本的方法.第二个示例中显示了完整脚本.

读取文件,直到到达带有模式的行,然后在该点退出循环.下次访问该文件句柄时,您将进入下一行,并可以在另一个循环中开始打印.

while (<$fh>) { last if /$timestamp/ }

print while <$fh>;

这将打印出文件的一部分,该文件的一部分位于其中包含$timestamp的行之后的行.如果更具体,请调整与时间戳完全匹配的方式.

或者 – 当行与时间戳匹配时设置标志,如果设置了标志则打印.

use warnings 'all';
use strict;

my $timestamp = localtime();

my $logile = 'xyz.log';
open my $fh,'<',$logfile or die "Can't open $logfile: $!";

my $mark = 0;
while (<$fh>) 
{
    if (not $mark) { 
        $mark = 1 if /$timestamp/;
    }
    else { print }
}
close $fh;

python – 如何从任何地方在特定时区找到时间

python – 如何从任何地方在特定时区找到时间

我需要知道运行Python脚本时CDT的当前时间.但是,此脚本将在多个不同的时区中运行,因此简单的偏移将不起作用.
我只需要Linux的解决方案,但跨平台解决方案将是理想的.

最佳答案
您可以使用time.gmtime()从任何机器获取时间GMT(UTC),无论时区如何,您都可以应用偏移量.

今天关于在Python中,如何在特定时间之前使线程休眠?python 线程休眠的讲解已经结束,谢谢您的阅读,如果想了解更多关于c# – 使用Rx排队操作我不希望在特定时间之前执行?、Cron作业删除在特定时间之前创build的文件、perl – 如何在特定时间之后从日志文件中打印行、python – 如何从任何地方在特定时区找到时间的相关知识,请在本站搜索。

本文标签: