由于在下面的代码中使用了“sleep”函数,我的Tkinter窗口出现崩溃问题。 后台的程序运行得很好,即使窗口很久以前就崩溃了
如何使用time.time之类的函数来确保不太频繁地对API进行查询,而不是对time.sleep进行阻塞调用。 换句话说,一旦我跟踪新用户列表,我如何防止程序在接下来的30秒内发出另一个请求
def follow_users(self,users_list):
api = self.api
api.login()
api.getSelfUsersFollowing()
result = api.LastJson
for user in result['users']:
following_users.append(user['pk'])
for user in users_list:
if not user['pk'] in following_users:
print('Following @' + user['username'])
api.follow(user['pk'])
# set this really long to avoid from suspension
sleep(30)
else:
print('Already following @' + user['username'])
sleep(15)
def unfollow_users(self):
api = self.api
api.login()
api.getSelfUserFollowers()
result = api.LastJson
for user in result['users']:
follower_users.append({'pk':user['pk'], 'username':user['username']})
api.getSelfUsersFollowing()
result = api.LastJson
for user in result['users']:
following_users.append({'pk':user['pk'],'username':user['username']})
for user in following_users:
if not user['pk'] in follower_users:
print('Unfollowing @' + user['username'])
api.unfollow(user['pk'])
sleep(20)
# set this really long to avoid from suspension
我将从编写一个函数开始,该函数只跟踪一个用户,仅此而已。它不需要在列表上循环,也不需要睡眠或者其他类似的东西,它应该只跟随一个用户
例如:
接下来,定义一个函数,从列表中提取一个用户,调用
follow_user
函数,然后重新安排自己在超时后再次运行下面的示例假设有一个名为
root
的全局变量,它表示根窗口,但您可以使用任何想要的小部件。它还假设该类维护一个名为self.users
的实例变量中要跟踪的用户列表然后,一旦程序启动,只需调用此函数一次。它将每30秒自动调用一次。如果
self.users
中至少有一个用户,它将从列表中提取该用户并跟随该用户。30秒后它会再做一次,然后再做一次,依此类推。你可以随时更新self.users
,最终用户会被跟踪相关问题 更多 >
编程相关推荐