Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用twisted每天重置redis键_Python_Linux_Redis_Twisted_Cronexpression - Fatal编程技术网

Python 使用twisted每天重置redis键

Python 使用twisted每天重置redis键,python,linux,redis,twisted,cronexpression,Python,Linux,Redis,Twisted,Cronexpression,我正在使用twisted引擎和Redis。 我需要每天清除一些redis键(12点,以维护每日数据) 我尝试使用task.LoopingCall,效果很好。它会在24小时后清除钥匙,但问题是,要做到这一点,我需要在12点钟启动发动机。因此,LoopingCall可以设置为24小时 使用twisted&redis本身有没有更好的方法来代替12点钟启动发动机 据我所知,我们可以使用crone job来完成这项工作。但是这是好的还是有其他选择?假设您的意思是希望在当地时间上午12:00清除这些密钥,首

我正在使用twisted引擎和Redis。 我需要每天清除一些redis键(12点,以维护每日数据)

我尝试使用task.LoopingCall,效果很好。它会在24小时后清除钥匙,但问题是,要做到这一点,我需要在12点钟启动发动机。因此,LoopingCall可以设置为24小时

使用twisted&redis本身有没有更好的方法来代替12点钟启动发动机


据我所知,我们可以使用crone job来完成这项工作。但是这是好的还是有其他选择?

假设您的意思是希望在当地时间上午12:00清除这些密钥,首先您需要安装软件包:

然后你可以计算到下一个时区的时间,类似这样:

from tzlocal import get_localzone

zone = get_localzone()

import datetime
now = datetime.datetime.now(zone)
next_midnight = (now.replace(hour=0, minute=0, second=0, microsecond=0) +
                 datetime.timedelta(days=1))

delta = then - now
until_next_midnight = delta.total_seconds()
call = LoopingCall(...)
reactor.callLater(
    until_next_midnight,
    lambda: call.start(datetime.timedelta(days=1).total_seconds())
)
最后,您可以在此时启动
循环调用
,如下所示:

from tzlocal import get_localzone

zone = get_localzone()

import datetime
now = datetime.datetime.now(zone)
next_midnight = (now.replace(hour=0, minute=0, second=0, microsecond=0) +
                 datetime.timedelta(days=1))

delta = then - now
until_next_midnight = delta.total_seconds()
call = LoopingCall(...)
reactor.callLater(
    until_next_midnight,
    lambda: call.start(datetime.timedelta(days=1).total_seconds())
)

同时也得到了关于铭文的直接回答,这真是太棒了。我忘了“回”字。