在python上设置特定的间隔时间

时间:2017-07-20 03:32:52

标签: python

我目前正在开发一个Python项目。代码将在特定时间刷新并获取新记录并更新数据库。我想要达到的目标是每15分钟或30分钟刷新一次。以下代码很好,但每天早上00.00才会获取一次新记录。

def check_schedule_task(self):
        # update group member list at 00:00 am every morning
        t = time.localtime()
        if t.tm_hour == 0 and t.tm_min <= 1:
            # update group member
            Log.debug('update group member list everyday')
            self.db.delete_table(Constant.TABLE_GROUP_LIST())
            self.db.delete_table(Constant.TABLE_GROUP_USER_LIST())
            self.db.create_table(Constant.TABLE_GROUP_LIST(), Constant.TABLE_GROUP_LIST_COL)
            self.db.create_table(Constant.TABLE_GROUP_USER_LIST(), Constant.TABLE_GROUP_USER_LIST_COL)
self.wechat.fetch_group_contacts()

我尝试了以下但每秒都刷新

def check_schedule_task(self):
            # update group member list at 00:00 am every morning
            t = time.localtime()
            if t.tm_min == 15 or 30 or 45 or 00:
                # update group member
                Log.debug('update group member list everyday')
                self.db.delete_table(Constant.TABLE_GROUP_LIST())
                self.db.delete_table(Constant.TABLE_GROUP_USER_LIST())
                self.db.create_table(Constant.TABLE_GROUP_LIST(), Constant.TABLE_GROUP_LIST_COL)
                self.db.create_table(Constant.TABLE_GROUP_USER_LIST(), Constant.TABLE_GROUP_USER_LIST_COL)
    self.wechat.fetch_group_contacts()

1 个答案:

答案 0 :(得分:0)

if t.tm_min == 15 or 30 or 45 or 00:行不正确。

你要写的是

if t.tm_min in (15,30,45,00):

尽管您可能会想到,但您的版本并不是如何与Python中的多个值进行比较。比较将始终评估为真,因为即使第一个比较为假,其余值也是真实的。您想要检查该数字列表是否包含您的变量。