我有一个Python脚本,每1分钟向我的API发送一个post请求:
while True:
data = requests.post("URL_HERE", json={
"api_key":"XXXX",
"concat": 1,
"messages": "HI"
})
time.sleep(60)
一切正常,但每2个小时(或多或少)有2个同一分钟的记录.例:
2017-03-22 11:34:46.977255
2017-03-22 11:37:47.231694
2017-03-22 11:37:47.231694
2017-03-22 11:39:48.849003
2017-03-22 11:40:48.907895
...
2017-03-23 13:59:59.150108
2017-03-23 14:00:00.120431
2017-03-23 14:00:00.942033
我想这是因为“while”中的代码需要几毫秒才能执行,多亏了这一点,每分钟2-3小时一次将有两条记录.
任何人都知道如何解决这个问题?我不能用cronjobs.
也许是异步任务?
如果我希望这个程序永远执行,那么使用“while”就可以了,或者我应该创建一个类似的守护进程?
解决方法:
而不是等待60秒,您可以等待当前分钟的剩余秒数:
time.sleep(60 - datetime.datetime.now().second)
如果你的工作结束了datetime.datetime.now().秒将是1或2,你将等待59或58秒.
标签:python,django,daemon