如何检查午夜是否在循环中通过?
您的代码已经这样做,如果你指的是内部循环:date.today()
只返回日期,即除非一天内循环时结束; stamp
和check
总是相等的。
如果您的意思是外环,则在外环之外移动stamp = date.today()
,并且仅在触发器被执行时更新stamp
,即如果stamp != check
。顺便说一句,你应该使用更好的名字,如last_date
和today
。您最初可以设置last_date = None
,以便在第一遍时触发执行。
我希望它做的事情,每天一次内部循环结束
from datetime import date
last_date = None
while True: # outer loop
for site in siteList: # inner loop
"hours long computations here"
today = date.today()
if last_date is None or last_date < today:
last_date = today # jobs are executed on different days
"send today's file here"
一般来说之后,它更灵活的分离,它调度从代码中的任务定义代码任务本身,例如,你可以创建一个cron作业,每天运行一次。您可以使用锁,等待内部循环完成并避免并行运行多个作业(cron doesn't protect against it)。如果以前的工作超过一天,两个工作可能会在同一天发生。
来源
2015-12-04 18:01:50
jfs
导入日期?那是什么?你自己的模块? date.today()返回什么? – Ale
完美检查:你有没有在无限循环内实例化'check'?你难道不知道它曾经是哪一天吗? –
woops你的权利它是datetime的日期,这是一个打字错误,它在代码中是正确的。 – svalle